有没有一种方法可以直接将python输出发送到剪贴板?
例如,如果python脚本将在运行脚本后吐出一个字符串,提供我要立即编辑的新编写文件的路径,那么将其直接发送到系统剪贴板而不是会很好STDOUT
。
回答:
您可以使用外部程序xsel
:
from subprocess import Popen, PIPEp = Popen(['xsel','-pi'], stdin=PIPE)
p.communicate(input='Hello, World')
使用xsel
,您可以设置要使用的剪贴板。
-p
与PRIMARY
选择一起使用。那是中键。-s
与SECONDARY
选择一起使用。我不知道是否再使用了。-b
与CLIPBOARD
选择一起使用。那是你的Ctrl + V
。
在这里和这里阅读有关X剪贴板的更多信息。
我创建的一个快速而肮脏的函数来处理此问题:
def paste(str, p=True, c=True): from subprocess import Popen, PIPE
if p:
p = Popen(['xsel', '-pi'], stdin=PIPE)
p.communicate(input=str)
if c:
p = Popen(['xsel', '-bi'], stdin=PIPE)
p.communicate(input=str)
paste('Hello', False) # pastes to CLIPBOARD only
paste('Hello', c=False) # pastes to PRIMARY only
paste('Hello') # pastes to both
您也可以尝试pyGTK的clipboard
:
import pygtkpygtk.require('2.0')
import gtk
clipboard = gtk.clipboard_get()
clipboard.set_text('Hello, World')
clipboard.store()
这适用Ctrl + V
于我的选择。
以上是 有没有一种方法可以直接将python输出发送到剪贴板? 的全部内容, 来源链接: utcz.com/qa/417629.html