我试图使一个基本的Windows应用程序构建出用户输入的字符串,然后将其添加到剪贴板。如何使用Python将字符串复制到剪贴板?
当前回答
你可以使用出色的pandas,它有一个内置的剪贴板支持,但你需要通过一个DataFrame。
import pandas as pd
df=pd.DataFrame(['Text to copy'])
df.to_clipboard(index=False,header=False)
其他回答
我在这里分享的代码片段利用了格式化文本文件的功能:如果您想将复杂的输出复制到剪贴板,该怎么办?(比如一个列中的numpy数组或一个列表)
import subprocess
import os
def cp2clip(clist):
#create a temporary file
fi=open("thisTextfileShouldNotExist.txt","w")
#write in the text file the way you want your data to be
for m in clist:
fi.write(m+"\n")
#close the file
fi.close()
#send "clip < file" to the shell
cmd="clip < thisTextfileShouldNotExist.txt"
w = subprocess.check_call(cmd,shell=True)
#delete the temporary text file
os.remove("thisTextfileShouldNotExist.txt")
return w
只适用于windows,我猜可以适用于linux或mac。可能有点复杂……
例子:
>>>cp2clip(["ET","phone","home"])
>>>0
在任何文本编辑器中按Ctrl+V:
ET
phone
home
你可以使用出色的pandas,它有一个内置的剪贴板支持,但你需要通过一个DataFrame。
import pandas as pd
df=pd.DataFrame(['Text to copy'])
df.to_clipboard(index=False,header=False)
实际上,对于这个简单的任务,pywin32和ctypes似乎是多余的。tkinter是一个跨平台的GUI框架,默认情况下与Python一起发布,并具有剪贴板访问方法和其他很酷的东西。
如果你所需要的只是将一些文本放入系统剪贴板,这将做到:
from tkinter import Tk # in Python 2, use "Tkinter" instead
r = Tk()
r.withdraw()
r.clipboard_clear()
r.clipboard_append('i can has clipboardz?')
r.update() # now it stays on the clipboard after the window is closed
r.destroy()
仅此而已,不需要在特定于平台的第三方库上浪费时间。
如果您正在使用Python 2,请将tkinter替换为tkinter。
看起来您需要将win32clipboard添加到站点包中。它是pywin32包的一部分
使用pyperclip模块
使用pip安装pyperclip。
https://pypi.org/project/pyperclip/
复制文本“Hello World!”到剪贴板
import pyperclip
pyperclip.copy('Hello World!')
你可以在任何地方使用Ctrl+V来粘贴它。
使用python粘贴复制的文本
pyperclip.paste() # This returns the copied text of type <class 'str'>