复制字符串-Python
好吧,伙计们,我想这很容易,但我似乎找不到如何复制字符串。只需像在文本上按CTRL+C一样复制到系统 基本上我想复制一个字符串,这样我就可以,比如说,粘贴(ctrl+v) 很抱歉问了这么一个小问题,哈哈。对于Windows,您可以。你将需要 对于GTK(至少在GNU/Linux上),您可以复制字符串-Python,python,string,copy,clipboard,Python,String,Copy,Clipboard,好吧,伙计们,我想这很容易,但我似乎找不到如何复制字符串。只需像在文本上按CTRL+C一样复制到系统 基本上我想复制一个字符串,这样我就可以,比如说,粘贴(ctrl+v) 很抱歉问了这么一个小问题,哈哈。对于Windows,您可以。你将需要 对于GTK(至少在GNU/Linux上),您可以 编辑:因为你提到(晚了一点)你正在使用wxPython,他们实际上也有一个用于此的模块。这在很大程度上取决于操作系统。在Linux上,由于X奇怪的选择模型,最简单的方法是使用popen('xsel-pi'),
编辑:因为你提到(晚了一点)你正在使用wxPython,他们实际上也有一个用于此的模块。这在很大程度上取决于操作系统。在Linux上,由于X奇怪的选择模型,最简单的方法是使用
popen('xsel-pi')
,并将文本写入该管道
例如:(我想)
正如评论中指出的,在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...
对于Windows,您可以这样做,这比创建新的子进程等要容易得多。对于多平台解决方案,您需要使用像wxPython或PyQt这样的跨平台框架-它们都支持以独立于平台的方式读取和写入系统剪贴板。依赖于我想象中的操作系统,你在用什么?Windows,尽管我问,如果应用程序应该是多平台的呢?有什么办法吗?类似的问题有一大堆好的答案可能在mac上重复,除了
/usr/bin/pbcopy
谢谢你的回复和评论!如果应用程序应该是多平台的呢?有可能吗?我认为您必须测试平台,然后执行本文提到的其中一种方法GTK可以在Windows上运行,因此很可能(但未经测试)您可以在两种平台上使用它。看,哦,好的。谢谢你的帮助哦,我实际上在用wxPython。
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...