2017-10-10 83 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()