質問

PythonプログラムでMacのクリップボードにテキストを配置したいです。

これは可能ですか?

役に立ちましたか?

解決

新しい回答:

このページの推奨事項:

  

すべてのMac OS Xの実装   バージョン

     

他のMacモジュール   (リスト4のMacSharedClipboard.py)   クリップボードインターフェースを実装します   2つのコマンドラインプログラムのトップ   pbcopy(テキストを   クリップボード)とpbpaste(これは   にあるテキストを貼り付けます   クリップボード)。プレフィックス" pb"を意味する   "ペーストボード" Macの用語   クリップボード。

古い回答:

どうやら:

http://code.activestate.com/recipes/410615/

は、その方法を示す簡単なスクリプトです。

編集:これはCarbonに依存しているため、理想的ではないかもしれないことに気付きました...使用目的によって少し異なります。

他のヒント

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)

As Cocoaのドキュメントで説明、コピーには3つのステップが必要です:

  • ペーストボードを取得
  • クリア
  • 記入

ペーストボードにオブジェクトの配列を入力します(ここでは a には1つの文字列のみが含まれます)。

簡単な方法:

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のクリップボードに入れるだけの場合は、シェルのpbcopyコマンドを使用できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top