复制字符串 - Python

3 投票
4 回答
4545 浏览
提问于 2025-04-15 21:27

好的,大家,我想这应该很简单,但我找不到怎么把一个字符串复制到系统里,就像在文本中按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...

撰写回答