2017-10-10 86 views
-1

無法從Python與python(或者macOS調用它的粘貼板)交互剪貼板。跑高塞拉利昂。從Mac上的python粘貼到文本字段

發現了一些例子: http://code.activestate.com/recipes/410615/ http://www.devx.com/opensource/Article/37233/0/page/3

但是好像他們正在使用過時的工具,我無法加載。

廢料存在,但似乎缺乏GetCurrentScrap方法:

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

感謝

編輯

刪除了錯誤的問題的一部分

+0

'pbpaste'仍然在當前版本的OS X中。儘管如此,你的代碼並沒有使用pbaste,所以目前還不清楚你的問題在哪裏。對於編程式訪問,使用pyobjc會有更好的運氣 - http://www.macdrifter.com/2011/12/python-and-the-mac-clipboard.html – pvg

+0

你對pbpaste是正確的。關於我所使用的virtualenv的一些問題是,只是通過在bash提示符下調用pbpaste,導致它在第二個片段中給我提供了那些python錯誤。然而,它從一個乾淨的外殼工作。 但是,我仍然有問題,從第一個片段,這是我不能導入GetCurrentScrap,並且所有關於它的文檔我可以找到它的廢棄。 – arcadeperfect

+0

閱讀我給你的網址。碳素任何東西都應該讓你停下來,使用pyobjc和可可。 – pvg

回答

0

我用這個:

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()