繁体   English   中英

Python 获取mac剪贴板内容

[英]Python get mac clipboard contents

我如何使用 Python (2.7) 获取 Mac 剪贴板的内容。 有没有比在 pbpaste 周围制作包装更好的方法?

谢谢!

PyObjC 是 go 的方式:

#!/usr/bin/python

from AppKit import NSPasteboard, NSStringPboardType

pb = NSPasteboard.generalPasteboard()
pbstring = pb.stringForType_(NSStringPboardType)
print u"Pastboard string: %s".encode("utf-8") % repr(pbstring)

这仅支持文本,否则将返回None 您也可以扩展它以支持其他数据类型,请参阅NSPastboard Class 参考

你看过施乐模块吗?
它应该支持 windows、OS X 和 Linux


用法如下:

xerox.copy(u'some string')

并粘贴:

>>> 施乐粘贴()
你'一些字符串'

我为“获取 Mac 剪贴板的内容”找到的xerox模块和大多数代码示例的问题是它们只返回纯文本。 他们不支持超链接、styles 等,因此他们无法真正访问 Microsoft Word 和 Google Chrome 等应用程序提供的全部内容。

站在别人的肩膀上,我终于想通了如何做到这一点。 生成的richxerox模块在PyPIBitbucket上可用。

虽然这个问题很老,但我在这里留下了面包屑,因为我在搜索答案时一直通过谷歌重新找到这个页面。

如果你已经安装了pandas,你可以使用pandas中的function如下:

from pandas.io.clipboard import clipboard_get
text = clipboard_get()                                                     

你知道PyObjC吗? 我想你可以用它来编写一个与NSPasteboard接口的 Py 包装器。 这可能比使用 pbpaste 更“优雅”。

您可以在 Mac 上使用 PIL/Pillow 抓取剪贴板(和屏幕),如下所示:

from PIL import ImageGrab, Image

# Grab clipboard and save to disk
clip = ImageGrab.grabclipboard()
clip.save("clip.png")

为了完整起见,您可以像这样抓取屏幕:

screen = ImageGrab.grab()

# That results in this:
# <PIL.PngImagePlugin.PngImageFile image mode=RGBA size=5120x2880 at 0x110BB7748>

# Save to disk
screen.save("screen.png")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM