2017-10-10 1 views
-1

Probleme mit der Zwischenablage von Python (oder Pasteboard, wie Mac OS es nennt) aus Python. Running High Sierra.Einfügen in ein Textfeld von Python auf Mac

Gefunden einige Beispiele: http://code.activestate.com/recipes/410615/ http://www.devx.com/opensource/Article/37233/0/page/3

aber es scheint, wie sie sind veraltet Tools, die ich kann nicht geladen werden.

Schrott besteht aber scheint die GetCurrentScrap Methode fehlt:

>>> import Carbon.Scrap 
>>> from Carbon.Scrap import GetCurrentScrap 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: cannot import name GetCurrentScrap 
>>> 

Dank

EDIT

entfernt Teil der Frage, die

+0

'pbpaste' bleibt in den aktuellen Versionen von OS X. Ihr Code verwendet jedoch überhaupt keine pbaste, daher ist nicht klar, was Ihre Frage dort ist. Für den programmatischen Zugriff, haben Sie mehr Glück mit pyobjc - http://www.macdrifter.com/2011/12/python-and-the-mac-clipboard.html – pvg

+0

Sie haben Recht mit pbpaste. Etwas an der Virtualenv, in der ich mich befand, verursachte, dass es mir diese Python-Fehler im zweiten Snippet gab, indem ich einfach pbpaste von der Bash-Eingabeaufforderung aus anrief. Es funktioniert jedoch von einer sauberen Shell. Allerdings habe ich immer noch das Problem aus dem ersten Snippet, das ist, dass ich GetCurrentScrap nicht importieren kann, und dass alle Dokumente über es finde ich sagen, es ist veraltet. – arcadeperfect

+0

Lesen Sie die URL, die ich Ihnen gegeben habe. Carbon irgendetwas sollte Ihnen eine Pause geben, verwenden Sie Pyobjc und Kakao. – pvg

Antwort

0

Ich benutze diese fehlerhaft war:

import subprocess 

def getClipboardData(): 
p = subprocess.Popen(['pbpaste'], stdout=subprocess.PIPE) 
retcode = p.wait() 
data = p.stdout.read() 
return data 

def setClipboardData(data): 
p = subprocess.Popen(['pbcopy'], stdin=subprocess.PIPE) 
p.stdin.write(data) 
p.stdin.close() 
retcode = p.wait() 
Verwandte Themen