首页 > 解决方案 > 从剪贴板读取二进制数据

问题描述

我在 Mac 上,python 3.7.2。我想将链接到 url 的文本写入剪贴板。这样我就可以将它直接粘贴到 Wordpress 站点、电子邮件、Google 文档等中。

我从文档中复制了一段超链接文本,并通过将其粘贴到不同的应用程序来确认它可以工作。文本保留其指向特定 url 的链接。

当我尝试从剪贴板中读取它时pbpaste(为了了解制作新的超文本链接字符串需要哪些字节,我可以将其放回剪贴板)文本以字节形式返回,但其中没有 URL。例如复制以下行:

包含超链接的文本行

但是在运行以下代码时,我看不到任何 URL 信息:

import subprocess
p = subprocess.Popen(['pbpaste', 'r'], stdout=subprocess.PIPE, close_fds=True)
stdout, stderr = p.communicate()
stdout                                                                                                                      
b'This: 00:06 is a link to a video.'

看来这是因为pbpaste丢失了额外的信息。有没有办法使用这个命令行工具或任何其他 python 工具从剪贴板获取这些富文本信息?使用p = subprocess.Popen(['pbpaste', '-Prefer', 'rtf', 'r'], stdout=subprocess.PIPE, close_fds=True)不起作用。

标签: pythonmacoscommand-lineclipboard

解决方案


推荐阅读