我的第一篇文章...在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