217

テキストをクリップボードにコピーする Python スクリプトが必要なだけです。

スクリプトが実行された後、テキストの出力を別のソースに貼り付ける必要があります。この仕事をする python スクリプトを書くことは可能ですか?

4

8 に答える 8

268

パイパークリップを参照してください。例 (Pyperclip サイトから取得):

import pyperclip
pyperclip.copy('The text to be copied to the clipboard.')
spam = pyperclip.paste()

また、ゼロックスも参照してください。しかし、より多くの依存関係があるようです。

于 2012-06-16T12:35:47.417 に答える
93

macOS では、テキストを次の場所にパイプするために使用しsubprocess.runます。pbcopy

import subprocess 
data = "hello world"
subprocess.run("pbcopy", universal_newlines=True, input=data)

「hello world」をクリップボードにコピーします。

于 2013-06-28T18:27:58.040 に答える
20

ネイティブの Python ディレクトリを使用するには、次を使用します。

import subprocess

def copy2clip(txt):
    cmd='echo '+txt.strip()+'|clip'
    return subprocess.check_call(cmd, shell=True)

Mac では、代わりに:

import subprocess

def copy2clip(txt):
    cmd='echo '+txt.strip()+'|pbcopy'
    return subprocess.check_call(cmd, shell=True)

次に使用します。

copy2clip('This is on my clipboard!')

関数を呼び出す。

于 2016-12-08T00:47:28.500 に答える
6

GTK3:

#!/usr/bin/python3

from gi.repository import Gtk, Gdk


class Hello(Gtk.Window):

    def __init__(self):
        super(Hello, self).__init__()
        clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
        clipboard.set_text("hello world", -1)
        Gtk.main_quit()


def main():
    Hello()
    Gtk.main()

if __name__ == "__main__":
    main()
于 2015-02-25T15:29:17.503 に答える
2

このクリップボード 0.0.4 を試してみましたが、うまくいきました。

https://pypi.python.org/pypi/clipboard/0.0.4

import clipboard
clipboard.copy("abc")  # now the clipboard content will be string "abc"
text = clipboard.paste()  # text will have the content of clipboard
于 2016-06-28T06:34:54.210 に答える
2

これは、GTK3 に対する @Martin Thoma の回答の変更版です。元の解決策ではプロセスが終了せず、スクリプトを呼び出したときに端末がハングすることがわかりました。スクリプトを次のように変更すると、問題が解決しました。

#!/usr/bin/python3

from gi.repository import Gtk, Gdk
import sys
from time import sleep

class Hello(Gtk.Window):

    def __init__(self):
        super(Hello, self).__init__()

        clipboardText = sys.argv[1]
        clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
        clipboard.set_text(clipboardText, -1)
        clipboard.store()


def main():
    Hello()



if __name__ == "__main__":
    main()

おそらく、clipboardText が割り当てられるものを変更したいと思うでしょう。このスクリプトでは、スクリプトが呼び出されるパラメーターに割り当てられます。

python-gobjectubuntu 16.04の新規インストールでは、モジュールのインポートエラーなしで機能するためにパッケージをインストールする必要があることがわかりました。

于 2016-04-25T11:34:46.967 に答える