【发布时间】:2013-12-13 18:59:11
【问题描述】:
如果我有一个变量 var = '这是一个变量'
如何将此字符串复制到 Windows 剪贴板,以便我可以简单地 Ctrl+v 并将其转移到其他地方?我不想使用任何非内置的东西,我希望这是可能的。
谢谢!
【问题讨论】:
-
使用
clipcmd 实用程序。将其输入复制到剪贴板
标签: python-3.x copy clipboard pyperclip
如果我有一个变量 var = '这是一个变量'
如何将此字符串复制到 Windows 剪贴板,以便我可以简单地 Ctrl+v 并将其转移到其他地方?我不想使用任何非内置的东西,我希望这是可能的。
谢谢!
【问题讨论】:
clip cmd 实用程序。将其输入复制到剪贴板
标签: python-3.x copy clipboard pyperclip
你可以这样做:
>>> import subprocess
>>> def copy2clip(txt):
... cmd='echo '+txt.strip()+'|clip'
... return subprocess.check_call(cmd, shell=True)
...
>>> copy2clip('now this is on my clipboard')
【讨论】:
x && rm -rf / 传递给你的函数时会做什么。
shutil.rmtree() 会这样做,或者os.remove() 会做得很好。我认为您将获取用户字符串或使用任意字符串并使用 those 执行代码与仅使用程序内部构造的字符串调用 shell 调用混为一谈。
copy2clip 应该这样做,而不是在用户尝试复制危险命令时擦除我的磁盘。否则将其命名为copy2clip_unless_its_a_shell_script。我刚刚尝试复制|dir 并得到了一个不错的目录列表。 hello\nworld 也失败了。
Pyperclip 提供跨平台解决方案。
关于此模块的一个注意事项:它将字符串编码为 ASCII,因此在通过 Pyperclip 运行它之前,您需要对字符串执行一些编码/解码工作以匹配它。
例子:
import pyperclip
#Usual Pyperclip usage:
string = "This is a sample string."
pyperclip.copy(string)
spam = pyperclip.paste()
#Example of decoding prior to running Pyperclip:
strings = open("textfile.txt", "rb")
strings = strings.decode("ascii", "ignore")
pyperclip.copy(strings)
spam = pyperclip.paste()
可能是一个明显的提示,但我遇到了麻烦,直到我查看了 Pyperclip 的代码。
【讨论】: