将变量的内容复制到剪贴板

2024-06-16 12:04:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python脚本中自动将变量的内容复制到剪贴板。因此,创建了一个保存字符串的变量,我想将该字符串复制到剪贴板。

有没有办法用Pyclips或者

os.system("echo '' | pbcopy")

我已经尝试过将变量传递到字符串应该传递到的位置,但这不起作用,这对我来说是有意义的。


Tags: 字符串echo脚本内容ossystem意义剪贴板
3条回答

对于X11(Unix/Linux):

os.system('echo "%s" | xsel -i' % variable)

xsel还可以选择写信给:

  1. 主要选择(默认)

  2. 第二选择(-s选项),或

  3. 剪贴板(-b选项)。

如果xsel不能按预期工作,可能是因为使用了错误的选择/剪贴板。

此外,使用-a选项,您可以附加到剪贴板而不是覆盖。使用-c,剪贴板被清除。

改善

模块subprocess提供了一种更安全的方法来执行相同的操作:

from subprocess import Popen, PIPE
Popen(('xsel', '-i'), stdin=PIPE).communicate(variable)

你试过这个吗?

import os
def addToClipBoard(text):
    command = 'echo ' + text.strip() + '| clip'
    os.system(command)

阅读更多解决方案here

编辑:

你可以称之为:

addToClipBoard(your_variable)

既然你提到了PyCLIPS,听起来第三方软件包就摆在桌面上了。让我为pyperclip抛出一个建议。完整的文档可以在GitHub上找到,但下面是一个示例:

import pyperclip
variable = 'Some really "complex" string with\na bunch of stuff in it.'
pyperclip.copy(variable)

虽然os.system(...'| pbcopy')示例也很好,但它们可能会给复杂字符串带来麻烦,而且pyperclip提供了相同的API跨平台。

相关问题 更多 >