如何在Python中从剪贴板读取数据并将其作为值传递给变量?

5

如何从剪贴板读取数据并将其作为变量传递给Python?

例如:

我将通过按下ctrl+c或右键单击复制一些数据{例如:200}。 然后将其传递给一个变量。

c = 200

..有人能告诉我如何做到这一点吗?


你使用的是哪个操作系统? - akira
以及哪个UI工具包 - Ber
Windows 2008服务器64位 - Yashwanth Nataraj
在Ubuntu平台上获取剪贴板中的文本需要使用Tkinter。 - thavan
3个回答

10

这个脚本放在你的路径中的某个地方,比如说你的项目文件夹里,然后:

import pyperclip # The name you have the file
x = pyperclip.paste()

链接是一个404,可能它指向了这个脚本http://coffeeghost.net/2010/10/09/pyperclip-a-cross-platform-clipboard-module-for-python/。 - Gordon Wrigley
在Debian上,pyperclip可作为软件包使用:以root身份运行apt-get install python-pyperclipapt-get install python3-pyperclip,具体取决于您的Python版本。 - neodelphi

10
在您的tkinter脚本中从剪贴板读取文本非常简单:
try:
    # Python2
    import Tkinter as tk
except ImportError:
    # Python3
    import tkinter as tk

root = tk.Tk()
# keep the window from showing
root.withdraw()

# read the clipboard
c = root.clipboard_get()

1
如果剪贴板无法解析为字符串,则会抛出异常。如果剪贴板中包含文件,则 c 将包含一个以 \n 分隔的路径列表。我对 Python 一无所知,希望知道是否有一种正确的方法来确定剪贴板是否包含纯文本,没有文件,也没有二进制数据块。 - phil294
3
值得一提的是,您不应该将这段代码放入一个函数中。曾经有人将这段代码封装成一个名为get_clipboard的函数,每次调用该函数时都会创建一个新的Tk实例,并最终导致内存泄漏,因为窗口从未被正确销毁。因此,要么1)创建一个单独的(全局?)Tk实例,要么2)调用root.destroy()以避免内存泄漏。 - Aran-Fey

0

我需要Python而不是C++... - Yashwanth Nataraj
我也提到了Python哦 :D - Marco167
请查看此链接:http://python-gtk-3-tutorial.readthedocs.org/en/latest/clipboard.html - Marco167
@Marco167,你有JavaScript的例子吗? - T-Heron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接