从支持富文本的应用程序复制到剪贴板通常会添加多种格式的文本。我需要找出可用的格式,然后以选定的格式检索剪贴板内容。如果有关系,我对富文本格式(来自Word、Acrobat、浏览器等)感兴趣,而不是图像数据或其他exotica。在
我看了又看,但是我找到的解决方案仅限于纯文本,super outdated,特定于Windows(我在OS X上)、命令行实用程序pbcopy
和{
因此:如何获得剪贴板中显示的格式列表,并以我选择的格式提取其内容?在
平台,按兴趣排序:系统独立(我希望)、OSX山狮(我目前的平台)或类似平台、其他平台(我计划发布我的代码)。在
pyperclip:看起来很有趣,但在OS X上它委托给pbcopy
和{text
、rtf
和{
activestate中的This recipe仅适用于Windows,但显示了如何获取HTML。(This所以问题指向它)。在
This SO answer也特定于win32clipboard。在
This问题是关于将文件拖放到剪贴板(在Windows上)。很有意思,但对我需要的没有帮助。在
This tkinter-based solution很简单,在OSX上仍然可以工作,但是它只得到纯文本——而且我没有发现tkinter可以处理其他任何事情的证据。在
This显示了几乎相同的tkinter代码,用于将文本放入剪贴板。在
我现在有了一个针对OSX的解决方案(见下面的self-answer),但是如果pyperclip
或其他模块在Windows上也能做到这一点,我将非常感激。Pyperclip深入研究了windowsapi,因此它离支持所有可用格式的列表和选择不远了。在
借助pypi上提供的模块richxerox,在osx上非常简单。它需要包括Apple
AppKit
和Foundation
模块的系统支持。我在为Python3构建Objective C时遇到了困难,所以最初我只能在Python2上使用它。不过,水蟒3配备了所有必要的部件。在下面是一个演示,可以打印可用的剪贴板类型,然后获取并打印每个类型:
输出:
^{pr2}$要以所需格式打印并返回到文本,可以使用以下命令:
或者您可以先检查是否有可用的格式:
相关问题 更多 >
编程相关推荐