PasteBoard—用于从nsPasteBoard(MacOS剪贴板)读取数据的Python接口。

pasteboard的Python项目详细描述


Pasteboard公开用于读取和写入macos的appkit的python绑定 NSPasteboard。这允许检索不同的格式(HTML/RTF片段, pdf/png/tiff)和粘贴板的高效轮询。

安装

显然,这个模块只能在macos上编译

pip install pasteboard

用法

获取内容

>>>importpasteboard>>>pb=pasteboard.Pasteboard()>>>pb.get_contents()'pasteboard'>>>pb.get_contents(diff=True)>>>

不出所料,get_contents获取粘贴板的内容。这种方法 接受两个可选参数:

type-要获取的格式。默认为pasteboard.String,对应于 到NSPasteboardTypeString。请参阅pasteboard模块成员以了解其他 选项,如html片段、rtf、pdf、png和tiff。不是所有格式的 NSPasteboardType已实现。

diff-默认为False。当True时,只获取并返回内容 如果上次通话后有变化。否则,返回None。 这可以用于有效地监视粘贴板的更改,这必须 通过轮询完成(没有订阅更改的选项)。

get_contents将返回适当的类型,因此对于字符串类型,str, 对于二进制类型,bytesNone在以下情况下返回:

  • 没有请求类型的数据(例如,已复制图像,但请求了字符串)。
  • diffTrue,自上次调用以来内容没有更改。
  • 发生错误。

设置内容

>>>importpasteboard>>>pb=pasteboard.Pasteboard()>>>pb.set_contents('pasteboard')True>>>

类似地,set_contents设置粘贴板的内容。这种方法 接受两个参数:

data-strbytes-like object,必需。没有类型检查。 因此,如果type表示字符串类型,data与utf-8相似,但不是utf-8 编码后,行为未定义。

type-要设置的格式。默认为pasteboard.String,对应于 到NSPasteboardTypeString。请参阅pasteboard模块成员以了解其他 选项,如html片段、rtf、pdf、png和tiff。不是所有格式的 NSPasteboardType已实现。

set_contents将返回True,如果粘贴板设置成功; 否则,False。如果data不能 已转换为AppKit类型。

开发

(如果不更改pasteboard.m代码,则无需知道此信息。)

在存储库中,我包含了一个可以与pipenv一起使用的Pipfile。 为测试安装所有依赖项(粘贴板没有python依赖项 本身)。在tests.py中有一些集成测试来检查模块 按设计工作(使用pytesthypothesis)。

$ pipenv install
$ pipenv run pytest tests.py --hypothesis-show-statistics

清理:

$ pipenv --rm
$ rm -rf \
    .hypothesis/ \
    .pytest_cache/ \
    build/ \
    pasteboard.egg-info/ \
    __pycache__/ \
    pasteboard.*.so \
    Pipfile.lock

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何使用外部java程序在minecraft中移动minecraft角色的相机   java输出文本文件中的变量   java LazyLoadingException在我尝试从多通关系获取对象时出现   java json rest API的错误:ClassCastException:org。json。无法将JSONObject强制转换为组织。json。杰索纳雷   java BigInteger。C中的intValue()等价物#   java大写所有字符,但不包括带引号字符串中的字符   java获取特殊字符   javascript为什么Selenium中的所有getX()调用都需要这么长时间?   rabbitmq rabbitmq java客户端并行消费   如何使用selenium Java在popover窗口中提取文本   对象在java中构造一类对象   java Room数据库未实现   json JSONObject可以使用java保存大的格式化双值吗?   有时限的旅行推销员   java HttpsURLConnection openConnection查询   java无法使用Spring@Entity注释创建MySQL表   lambda Java 8仅映射到值类型集合   java提供OSGi服务而不实现接口   java单个对象重写对象数组,不确定原因