我的第一篇文章...在Python脚本中输出来自NSPasteboard的额外字符
我正在使用python脚本从Mac OS X Lion上的剪贴板中获取文本。
我设置具有以下功能剪贴板:
def setClip (text):
pb = NSPasteboard.generalPasteboard()
pb.clearContents()
a = NSArray.arrayWithObject_(text)
return pb.writeObjects_(a)
其中text
= “一些文本”
我用下面的检索剪贴板:
def getClip():
pb = NSPasteboard.generalPasteboard()
pbstring = pb.stringForType_(NSString *)dataType
return pbstring
输出前置用“u”将文字用引号括起来如下:
In [224]: setClip('some text')
Out[224]: True
In [225]: getClip()
Out[225]: "u'some text'"
如何检索文本,因为它应该是输入到剪贴板?
我对NSPasteboard一无所知。我在stackoverflow上找到了这些代码片段。
在此先感谢。
附录:我的实际代码
from AppKit import *
def setClip (text):
pb = NSPasteboard.generalPasteboard()
pb.clearContents()
a = NSArray.arrayWithObject_(text)
return pb.writeObjects_(a)
def getClip():
pb = NSPasteboard.generalPasteboard()
pbstring = pb.stringForType_(NSString *)dataType
return pbstring
这是我在IPython中运行它会发生什么:
输出被换成了一个“U”在引号的文本如下:
In [224]: setClip('some text')
Out[224]: True
In [225]: getClip()
Out[225]: "u'some text'"
试过一个建议从答案 ***
def getClip():
pb = NSPasteboard.generalPasteboard()
return pb.stringForType_("public.utf8-plain-text")
In [332]: getClip()
Out[332]: u"some text"
不行。 :-(
是的,我只需要做到这一点。
print getClip()
而且我现在有
"some text"
如果使用[dataForType](http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSPasteboard_Class/Reference/Reference.html)而不是'stringForType',会发生什么情况? – unutbu
这不能是你的实际代码,因为'getClip'的第二行会引发'SyntaxError'。除非您向我们展示正确的代码,否则我们无法调试您的代码。 – abarnert
'pbstring = pb.stringForType_(NSString *)dataType'的语法看起来可能来自不同的语言 - 您能准确地包含您用来生成上述输出的内容吗? – RocketDonkey