python可以发送文本到Mac剪贴板吗
题
我希望我的 python 程序在 Mac 剪贴板中放置一些文本。
这可能吗?
解决方案
新答案:强>
此页表明:
对于所有的Mac OS X实现 版本强>
其它MAC模块 (MacSharedClipboard.py,清单4) 实现剪贴板上的接口 的两个命令行程序顶 所谓pbcopy(其拷贝文本 剪贴板)和pbpaste(其 粘贴任何文本是在 剪贴板)。前缀“PB”代表 “纸板”,在Mac任期 剪贴板。
<强>旧的答案:强>
显然这样:
http://code.activestate.com/recipes/410615/
是一个简单的脚本演示如何做到这一点。
编辑:刚刚意识到这依赖于碳,所以可能不理想......取决于一点你使用它什么
其他提示
如何将Unicode字符串写入到Mac剪贴板:
import subprocess
def write_to_clipboard(output):
process = subprocess.Popen(
'pbcopy', env={'LANG': 'en_US.UTF-8'}, stdin=subprocess.PIPE)
process.communicate(output.encode('utf-8'))
如何从Mac剪贴板读Unicode字符串:
import subprocess
def read_from_clipboard():
return subprocess.check_output(
'pbpaste', env={'LANG': 'en_US.UTF-8'}).decode('utf-8')
作品上都Python的2.7和Python 3.4
以下代码使用 PyObjC (http://pyobjc.sourceforge.net/)
from AppKit import NSPasteboard, NSArray
pb = NSPasteboard.generalPasteboard()
pb.clearContents()
a = NSArray.arrayWithObject_("hello world")
pb.writeObjects_(a)
作为 Cocoa 文档中有解释, ,复制需要三步:
- 得到粘贴板
- 清除它
- 填充
您用对象数组填充粘贴板(此处 a
仅包含一个字符串)。
一个简单的方法:
cmd = 'echo %s | tr -d "\n" | pbcopy' % str
os.system(cmd)
一个跨平台的方式:点击 https://stackoverflow.com/a/4203897/805627
from Tkinter import Tk
r = Tk()
r.withdraw()
r.clipboard_clear()
r.clipboard_append('i can has clipboardz?')
r.destroy()
我知道这是一个老帖子,但我发现一个非常优雅的解决这个问题。
有一个名为 PyClip 库,它可在 HTTPS找到:/ /github.com/georgefs/pyclip-copycat 。
的语法是非常简单的(例如,从GitHub库):
import clipboard
# copy some text to the clipboard
clipboard.copy('blah blah blah')
# get the text currently held in the clipboard
text = clipboard.paste()
一旦你通过clipboard.copy('foo')
你可以 CMD + V ,以获取文本
如果你只是希望把文本到剪贴板MAC,你可以使用shell的pbcopy命令。