Python получает содержимое буфера обмена Mac

Как я могу, используя Python (2.7), получить содержимое буфера обмена Mac. Есть ли лучший способ сделать обертку вокруг pbpaste?

Спасибо!

Ответ 1

PyObjC - путь:

#!/usr/bin/python

from AppKit import *

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

Это поддерживает только текст и возвращает None в противном случае. Вы можете расширить его для поддержки других типов данных, см. Ссылка на класс NSPastboard.

Ответ 2

Вы просмотрели модуль xerox?
Он должен поддерживать Windows, OS X и Linux


Использование выглядит следующим образом:

xerox.copy(u'some string ')

И для вставки:

→ > xerox.paste()
u'some string '

Ответ 3

Проблема с модулем xerox и большинством примеров кода, которые я нашел для "получения содержимого буфера обмена Mac", заключается в том, что они возвращают только обычный текст. Они не поддерживают гиперссылки, стили и т.д., Поэтому они не могут получить доступ к полному содержимому, предоставляемому такими приложениями, как Microsoft Word и Google Chrome.

Стоя на плечах других, я, наконец, понял, как это сделать. Полученный richxerox модуль доступен на PyPI и Bitbucket.

Несмотря на то, что этот вопрос устарел, я оставляю здесь сухарики, потому что последовательно искал эту страницу через Google, ища ответ.

Ответ 4

Знаете ли вы PyObjC? Думаю, вы могли бы использовать его для написания обертки Py, которая взаимодействует с NSPasteboard. Это может быть более "элегантным", чем обтекание pbpaste.