我试图使一个基本的Windows应用程序构建出用户输入的字符串,然后将其添加到剪贴板。如何使用Python将字符串复制到剪贴板?
当前回答
看起来您需要将win32clipboard添加到站点包中。它是pywin32包的一部分
其他回答
我的多平台解决方案基于这个问题:
import subprocess
import distutils.spawn
def clipit(text):
if distutils.spawn.find_executable("xclip"):
# for Linux
subprocess.run(["xclip", "-i"], input=text.encode("utf8"))
elif distutils.spawn.find_executable("xsel"):
# for Linux
subprocess.run(["xsel", "--input"], input=text.encode("utf8"))
elif distutils.spawn.find_executable("clip"):
# for Windows
subprocess.run(["clip"], input=text.encode("utf8"))
else:
import pyperclip
print("I use module pyperclip.")
pyperclip.copy(text)
我认为有一个更简单的解决办法。
name = input('What is your name? ')
print('Hello %s' % (name) )
然后在命令行中运行程序
Python greeting .py |剪辑
这将把文件的输出输出到剪贴板
小部件还具有名为.clipboard_get()的方法,该方法返回剪贴板的内容(除非根据剪贴板中的数据类型发生某种错误)。
在这个错误报告中提到了clipboard_get()方法: http://bugs.python.org/issue14777
奇怪的是,在我通常参考的常见(但非官方的)在线TkInter文档源中并没有提到这种方法。
复制剪贴板的代码片段:
在名为(clipboard.py)的模块中创建包装器Python代码:
import clr
clr.AddReference('System.Windows.Forms')
from System.Windows.Forms import Clipboard
def setText(text):
Clipboard.SetText(text)
def getText():
return Clipboard.GetText()
然后将上述模块导入到代码中。
import io
import clipboard
code = clipboard.getText()
print code
code = "abcd"
clipboard.setText(code)
我必须赞扬博客文章在IronPython剪贴板访问。
在Windows上,你可以使用这个。没有外部依赖,也不必打开子进程:
import win32clipboard
def to_clipboard(txt):
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardText(txt)
win32clipboard.CloseClipboard()
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 我如何找到哪个程序正在使用端口80在Windows?
- 使用try和。Python中的if