复制字符串 - Python
好的,大家,我想这应该很简单,但我找不到怎么把一个字符串复制到系统里,就像在文本中按CTRL+C那样。
基本上,我想复制一个字符串,这样我就可以,比如说,粘贴(ctrl+v)它。
抱歉问这样一个简单的问题,哈哈。
4 个回答
2
在Windows系统上,你可以按照这个链接的方法来操作,这样比创建一个新的子进程要简单得多。
4
在Windows系统上,你可以使用 win32clipboard。你还需要安装 pywin32 这个库。
如果你是在GNU/Linux系统上使用GTK的话,可以用 pygtk。
补充一下:因为你提到你在用wxPython(虽然有点晚了),其实它也有一个专门的模块可以用,叫 wx.Clipboard。
2
这主要取决于你使用的操作系统。在Linux系统上,由于X的选择模型比较奇怪,最简单的方法是使用 popen('xsel -pi')
,然后把文本写入这个管道。
比如说:(我觉得)
def select_xsel(text):
import subprocess
xsel_proc = subprocess.Popen(['xsel', '-pi'], stdin=subprocess.PIPE)
xsel_proc.communicate(some_text)
正如评论中提到的,在Mac上,你可以使用 /usr/bin/pbcopy
命令,像这样:
xsel_proc = subprocess.Popen(['pbcopy'], stdin=subprocess.PIPE)
如果你想支持不同的操作系统,可以结合使用不同的解决方案,通过 os.name
来判断该用哪种方法:
import os, subprocess
def select_text(text):
if os.name == "posix":
# try Mac first
try:
xsel_proc = subprocess.Popen(['pbcopy'], stdin=subprocess.PIPE)
except:
# try Linux version
xsel_proc = subprocess.Popen(['xsel', '-pi'], stdin=subprocess.PIPE)
elif os.name == "nt":
# Windows...