复制字符串 - Python

发布于 2024-08-28 13:44:03 字数 119 浏览 4 评论 0原文

好吧,我想这很容易,但我似乎找不到如何复制字符串。只需复制到系统(如文本上的 CTRL+C)即可。

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

抱歉问了这么简单的问题,哈哈。

Ok guys I imagine this is easy but I can't seem to find how to copy a string. Simply COPY to the system like CTRL+C on a text.

Basically I want to copy a string so I can for example, lets say, paste(ctrl+v).

Sorry for such a trivial question, haha.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

夏见 2024-09-04 13:44:04

对于 Windows,您使用 win32clipboard。您将需要 pywin32

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

编辑:既然你提到(有点晚了)你正在使用wxPython,他们实际上也有一个模块,wx.Clipboard.

For Windows, you use win32clipboard. You will need pywin32.

For GTK (at least on GNU/Linux), you can use pygtk.

EDIT: Since you mentioned (a bit late) you're using wxPython, they actually have a module for this too, wx.Clipboard.

生生不灭 2024-09-04 13:44:04

这在很大程度上取决于操作系统。在 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...

This depends a lot on the OS. On Linux, due to X's bizarre selection model, the easiest way is to use popen('xsel -pi'), and write the text to that pipe.

For example: (I think)

def select_xsel(text):
    import subprocess
    xsel_proc = subprocess.Popen(['xsel', '-pi'], stdin=subprocess.PIPE)
    xsel_proc.communicate(some_text)

As pointed out in the comments, on a Mac, you can use the /usr/bin/pbcopy command, like this:

xsel_proc = subprocess.Popen(['pbcopy'], stdin=subprocess.PIPE)

If you want to support different OSes, you could combine different solutions with os.name to determine which method to use:

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...
腻橙味 2024-09-04 13:44:04

对于 Windows,您可以执行这个,而且效果非常好比创建新的子流程等更容易......

For Windows, you can do this and it's much easier than creating a new subprocess etc...

无所的.畏惧 2024-09-04 13:44:04

对于多平台解决方案,您需要使用 wxPython 或 PyQt 等跨平台框架 - 它们都支持以独立于平台的方式读取和写入系统剪贴板。

For a multi-platform solution you will need to use a cross-platform framework like wxPython or PyQt - they both have support for reading and writing to the system clipboard in a platform independent way.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文