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.