2010-11-29 20 views
14

がクリップボードに文字列パラメータをコピーする関数を作成しようとしています。私はこれを私が取り組んできたPythonスクリプトで使うつもりです。クリップボードにテキストをコピーするためのプラットフォームに依存しないツール

from tkinter import Tk 

    def copy_to_clipboard(text): 
     text = str(text) 
     r = Tk() 
     r.withdraw() 
     r.clipboard_clear() 
     r.clipboard_append(text) 
     r.destroy() 

私の問題は、スクリプトが停止した場合、コピーしたテキストは、もはやクリップボードにあるということではありません:これは私がこれまでに(別のスタックオーバーフローの記事に見られる最もこのスニペットを)持っているものです。

可能性のある代替方法や修正方法はありますか?

問題に適したプラットフォームに依存しない解決策がありますか?または、ユーザーがどのOSを使用しているかを確認し、そこから進んでいく必要がありますか?

+0

削除r.destroy()(Macのみテスト):P –

+0

を私はすでに試みられてきたと同じ問題が解決しません。しかし、ありがとう。 – aonbyte

答えて

11

はい、あります1 :)

使用pyperclip

+0

よく見えます。ありがとう=) – aonbyte

+0

非常に良い、まずxclipをインストールする必要があります。 – qed

4

LinuxでGnomeを実行しているとします。

コピー元が消えたらすぐGnomeで正常に動作します。コピー元のブラウザウィンドウを閉じると、クリップボードのデータも削除されます。回避策は、WindowsとKDEのようにクリップボードの状態を保持するgnome-clipboard-daemonをインストールすることです。

Gnomeで実行しているときは、スクリプトを実行したままにすることはできません。あなたのための

+0

しかし、これはgnome-clipboard-daemonの依存関係を(ある種の)追加します。 – Sparragus

+0

@Sparragusはい、デーモンはバックグラウンドで実行する必要があります。 –

+0

私はUbuntu 12.04を使用しています。リポジトリにそのようなものはありません。 – qed