在不更改剪贴板,甚至不更改多剪贴板的情况下,将选定的文本读取到Python函数中

时间:2019-06-02 11:36:59

标签: python windows clipboard copy-paste

我想用鼠标或键盘选择一些文本,使用Python函数对其进行更改(例如,将单词替换为其他单词),然后粘贴更改后的文本。我想这样做而不更改剪贴板上的内容。我不满意仅保留剪贴板第一个插槽中的内容。我想保留剪贴板每个插槽上的内容,或者至少保留第一个。 50个插槽。我的问题是怎么做?

我有兴趣在Windows上使用Python进行此操作。

背景:Windows最近引入了本机多剪贴板(即具有多个插槽的剪贴板),可以通过按Windows-v(see here)来访问它,并且还有第三方应用程序,例如Copyq和同上提供了一个多剪贴板。当您将某物复制到Windows多剪贴板上时,您复制的物被放到第一个插槽中,而其他所有东西都向下移一个插槽。使用Windows多剪贴板而不是第三方应用程序的解决方案将是可取的,但不是必需的。 Pyperclip是一种流行的工具,用于从剪贴板将文本读入Python函数并将文本从Python函数传递回剪贴板。但是,Pyperclip似乎只能与剪贴板上的第一个插槽进行交互。

我当前的方法:1)将剪贴板的先前内容存储在一个临时变量中,2)将所选文本复制到剪贴板中,3)通过Pyperclip将复制的所选文本传递到Python函数中,4)更改文本使用Python函数,5)使用Pyperclip将更改后的文本放回剪贴板,5)粘贴更改后的文本,6)最后将原始剪贴板内容放回剪贴板(使用临时变量)。但是这种方法还不够好,因为它改变了剪贴板较高插槽上的内容,例如第二个插槽。特别是,它会将内容添加到剪贴板,从而将其他所有内容向下移动。

一旦完成,是否可以通过编程方式从多剪贴板删除多余的内容?例如,一旦我将剪贴板中的选定文本传递到Python函数(将在其中进行操作),我便想使用Python函数从剪贴板中删除选定的文本,因为在那里不再需要。 (我知道您可以使用GUI从剪贴板中删除文本,但是我想通过使用Python函数来删除文本。)或者,如果有一种方法可以将选定的文本读入Python函数(并将其粘贴回去)而无需可以将其放在多剪贴板的任何插槽上,也可以使用。

谢谢

0 个答案:

没有答案