Как я могу, используя Python (2.7), получить содержимое буфера обмена Mac. Есть ли лучший способ, чем сделать обертку вокруг pbpaste?Python get mac содержимое буфера обмена
Спасибо!
Как я могу, используя Python (2.7), получить содержимое буфера обмена Mac. Есть ли лучший способ, чем сделать обертку вокруг pbpaste?Python get mac содержимое буфера обмена
Спасибо!
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 Class Reference.
Знаете ли вы, что PyObjC? Думаю, вы могли бы использовать его для написания обертки Py, которая взаимодействует с NSPasteboard. Это может быть более «изящным», чем обтекание pbpaste.
Вы просмотрели модуль xerox?
Предполагается поддерживать Windows, OS X и Linux
Использование выглядит следующим образом:
xerox.copy (u'some строка ')
И наклеить :
>>> xerox.paste()
u'some строка»
Проблема с модулем xerox
и большинством примеров кода, которые я нашел для «получения содержимого буфера обмена Mac», заключается в том, что они возвращают только обычный текст. Они не поддерживают гиперссылки, стили и т. Д., Поэтому они не могут получить доступ к полному содержимому, предоставляемому такими приложениями, как Microsoft Word и Google Chrome.
Стоя на плечах других людей, я, наконец, понял, как это сделать. Результирующий модуль richxerox
доступен на PyPI и Bitbucket.
Хотя этот вопрос старый, я оставляю здесь панировочные сухари, потому что я последовательно пересматривал эту страницу через Google, ища ответ.
'richxerox' отлично смотрится! Я искал что-то вроде этого. Раздражающий сбой: хотя он устанавливается на Python 3, это код Python 2. Зачем? Он легко обновляется. – alexis
Я имею в виду, что версия, в которой 'pip' установлена (0.129), имеет команды' print' без круглых скобок, у нее есть 'iteritems()' и т. Д. Это несовместимо с python 3 и ошибки на 'import richxerox'. Есть ли версия, которую я могу задать «pip» за то, что будет работать? Который из? (Я спрашиваю об этом, потому что видел месячный отчет об ошибках последних версий). – alexis
Ха, я думаю, это проблема семантики: '129> 6' :-) Я принесу правильную версию, спасибо. (К сожалению, 'pip' не смог построить PyObjC в моем блоке El Capitan, поэтому я не смогу его протестировать с помощью python 3.) – alexis
Если бы я знал PyObjC, я бы не писал приложения Mac в Python;) –