例如,如果python脚本将在运行脚本后吐出一个字符串,提供我要立即编辑的新编写文件的路径,那么将其直接发送到系统剪贴板而不是会很好STDOUT。
STDOUT
您可以使用外部程序xsel:
xsel
from subprocess import Popen, PIPE p = 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:
clipboard
import pygtk pygtk.require('2.0') import gtk clipboard = gtk.clipboard_get() clipboard.set_text('Hello, World') clipboard.store()
这适用Ctrl + V于我的选择。