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

Ale*_*lex 7 python

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

有没有办法用Pyclips或

os.system("echo '' | pbcopy")
Run Code Online (Sandbox Code Playgroud)

我已经尝试传递字符串应该去的变量,但这对我来说没有用.

Chr*_*ian 10

你试过这个吗?

import os
def addToClipBoard(text):
    command = 'echo ' + text.strip() + '| clip'
    os.system(command)
Run Code Online (Sandbox Code Playgroud)

更多的解决方案在这里.

编辑:

你可以称之为:

addToClipBoard(your_variable)
Run Code Online (Sandbox Code Playgroud)


Mat*_*ahl 6

自从您提到PyCLIPS以来,听起来好像桌上有第三方包装。让我对pyperclip提出建议。完整的文档可以在GitHub上找到,但是这里有一个例子:

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

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


P. *_*kis 5

接受的答案对我不起作用,因为输出包含引号、撇号和 $$ 符号,这些符号被 shell 解释和替换。

我根据答案改进了功能。此解决方案使用临时文件而不是在 shell 中回显字符串。

def add_to_clipboard(text):
    import tempfile
    with tempfile.NamedTemporaryFile("w") as fp:
        fp.write(text)
        fp.flush()
        command = "pbcopy < {}".format(fp.name)
        os.system(command)
Run Code Online (Sandbox Code Playgroud)

对于 Windows 或Linux,将 替换为pbcopyclipxclip