复制字符串-Python

复制字符串-Python,python,string,copy,clipboard,Python,String,Copy,Clipboard,好吧,伙计们,我想这很容易,但我似乎找不到如何复制字符串。只需像在文本上按CTRL+C一样复制到系统 基本上我想复制一个字符串,这样我就可以,比如说,粘贴(ctrl+v) 很抱歉问了这么一个小问题,哈哈。对于Windows,您可以。你将需要 对于GTK(至少在GNU/Linux上),您可以 编辑:因为你提到(晚了一点)你正在使用wxPython,他们实际上也有一个用于此的模块。这在很大程度上取决于操作系统。在Linux上,由于X奇怪的选择模型,最简单的方法是使用popen('xsel-pi'),

好吧,伙计们,我想这很容易,但我似乎找不到如何复制字符串。只需像在文本上按CTRL+C一样复制到系统

基本上我想复制一个字符串,这样我就可以,比如说,粘贴(ctrl+v)

很抱歉问了这么一个小问题,哈哈。

对于Windows,您可以。你将需要

对于GTK(至少在GNU/Linux上),您可以


编辑:因为你提到(晚了一点)你正在使用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...