我希望我的 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命令。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top