我正在尝试在 Python 中创建一个脚本,该脚本将收集用户放入剪贴板的数据,最好将其保存为列表或文本文件或字符串/数组/变量以供以后使用。
这应该适用于 Linux 的所有版本(我假设是 Ubuntu)、Mac OS 的所有版本和 Windows 的所有版本。我不确定 32 位和 64 位系统是否有不同的方式来访问剪贴板中的数据,如果有的话,我想只对 32 位版本进行这项工作是安全的,这样运行 64 位版本的人就可以回退到 32 位操作系统的版本。
棘手的部分,除了必须在提到的操作系统上工作之外,我希望脚本运行,只要用户不停止它,并且运行时用户复制到剪贴板的所有数据都被复制到列表或文本文件或字符串/数组/变量。
当然,用户可以将数据输入剪贴板是有时间限制的,所以我想每秒钟或每 500 毫秒循环扫描剪贴板,检查内容是否已更改,如果已更改,则复制它,否则不要复制它。
是否有一种统一的方式或模块可以在所有不同的操作系统上执行此操作,还是为各种操作系统编写单独的脚本来执行此任务会更好?
问题是,这是我希望在 Linux、Mac 和 Windows 上工作的一个更大项目的一部分,因此涵盖了这三个选项,然后使用可在上述操作系统中使用的 Python 代码用于脚本的其余部分/project 将是理想的。关于它必须在 Linux、Mac 和 Windows 上工作,我对这个脚本的总体要求是否过高?
最佳答案
您可以使用诸如 Qt 之类的 GUI 工具包来获取便携式剪贴板 API。也就是说,为此使用整个 GUI 工具包可能有点矫枉过正。 (当然,除非您还将使用它来制作 GUI。)
也就是说,处理纯文本的剪贴板 API 应该相当简单,可以让您自己进行抽象。
例如,在 OS X 上,您可以使用 PyObjC(与 OS X 一起安装)来获取剪贴板的纯文本内容:
from AppKit import NSPasteboard
from LaunchServices import
pb = NSPasteboard.generalPasteboard()
text = pb.stringForType_(kUTTypeUTF8PlainText)
CPU架构
64 位操作系统上的 32 位 native 应用程序将访问与 64 位应用程序相同的剪贴板。如果您需要支持操作系统的两种架构,并且不编写驱动程序,那么对于 Windows,可以提供 32 位二进制文件;对于 Linux,您可能必须同时使用这两个版本;对于 OS X,发布 64 位版本应该是相当安全的,自 2007 年年中以来的所有 Mac 都配备了 64 位 CPU,并且自 Leopard 以来就有 OS 支持。在 Linux 上,Python 脚本可能由分发包管理器中的 Python 安装执行,其位数将与系统匹配,因此您不必担心这一点。
关于python - 使用单个 Python 脚本从 Linux、Mac 和 Windows 上的剪贴板复制数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7881230/