在 Python 中与选定的文本交互

我想创建一个简单的 Python 应用程序,它将与当前选定的文本进行交互,并在用户按下键盘快捷键时对其进行一些操作。执行此操作的显而易见的方法是使用将文本复制到剪贴板pyautogui.hotkey("ctrl", "c"),然后与之交互。问题是,此方法会覆盖用户当前在剪贴板中的任何内容。


我能想到的唯一解决方法是:


#make a backup of current clipboard contents

tmpClipboard = pyperclip.paste()


#copy selected text and store it

pyautogui.hotkey("ctrl", "c")

selectedText = pyperclip.paste()


#copy old clipboard contents back inside

pyperclip.copy(tmpClipboard)


#process selected text

doStuff(selectedText)

什么是更好的处理方法(因为我不确定当用户在剪贴板中有图像而不是纯文本时这会表现如何)?


繁华开满天机
浏览 151回答 1
1回答

沧海一幻觉

您可以尝试让用户定义交互热键。我不知道您的最终应用程序,因此这取决于您想要实现的用户体验。例如,如果用户是工程师,我认为他更愿意收到有关默认热键的提示,并根据需要进行更改。关于抓住选定的文本-这取决于你的GUI结合-您使用的Tk,Qt等等..?例如,Qt有一个QTextCursor可用于获取有关光标和用户选择的信息,然后在不使用整个剪贴板技巧的情况下抓取文本。通过这种方式,您还可以确保获得所需的数据。至于图像等:如果您仍然选择使用剪贴板,则可以断言数据类型。然而,它确实有大量的可能值,而且似乎非常麻烦和低效。祝你好运!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python