¿Cómo puedo, usando Python (2.7) obtener el contenido del portapapeles de Mac. ¿Hay una mejor manera de hacer una envoltura alrededor de pbpaste?Python get mac portapapeles contenido
Gracias!
¿Cómo puedo, usando Python (2.7) obtener el contenido del portapapeles de Mac. ¿Hay una mejor manera de hacer una envoltura alrededor de pbpaste?Python get mac portapapeles contenido
Gracias!
PyObjC es el camino a seguir:
#!/usr/bin/python
from AppKit import *
pb = NSPasteboard.generalPasteboard()
pbstring = pb.stringForType_(NSStringPboardType)
print u"Pastboard string: %s".encode("utf-8") % repr(pbstring)
Esto sólo es compatible con el texto y volverá None
lo contrario. Puede ampliarlo para que sea compatible con otros tipos de datos, consulte NSPastboard Class Reference.
¿Conoces PyObjC? Supongo que podrías usarlo para escribir un envoltorio Py que interactúa con NSPasteboard. Esto podría ser más "elegante" que bombardear a pbpaste.
¿Has mirado el módulo xerox?
que se supone que son compatibles con Windows, OS X y Linux
uso es el siguiente:
xerox.copy (u'some cadena ')
Y para pegar :
>>> xerox.paste()
cadena u'some'
El problema con el módulo xerox
y la mayoría de los ejemplos de código que he encontrado para "obtener el contenido del portapapeles de Mac" es que solo devuelven texto sin formato. No admiten hipervínculos, estilos, etc., por lo que no pueden acceder a todos los contenidos proporcionados por aplicaciones como Microsoft Word y Google Chrome.
De pie sobre los hombros de los demás, finalmente descubrí cómo hacerlo. El módulo resultante richxerox
está disponible en PyPI y Bitbucket.
Aunque esta pregunta es antigua, dejaré las migas de pan aquí porque constantemente volví a encontrar esta página a través de Google mientras buscaba la respuesta.
'richxerox' se ve genial! He estado buscando algo como esto. Glitch molesto: aunque se instala en Python 3, es el código de Python 2. ¿Por qué? Se actualiza fácilmente. – alexis
Me refiero a que la versión que 'pip' instaló (0.129) tiene declaraciones 'print' sin paréntesis, tiene' iteritems() ', etc. No es compatible con python 3, y comete errores en' import richxerox'. ¿Hay alguna versión que pueda preguntarle a 'pip' qué va a funcionar? ¿Cúal? (Pregunto esto porque vi un informe de error de meses de antigüedad sobre versiones recientes). – alexis
Ha, supongo que es un problema de semántica: '129> 6' :-) Buscaré la versión correcta, gracias. (Desafortunadamente 'pip' no pudo construir PyObjC en mi casilla El Capitan, así que no podré probarlo realmente con Python 3.) – alexis
Si conociera PyObjC, no estaría escribiendo aplicaciones Mac en Python;) –