Python-Skript zum Kopieren von Text in die Zwischenablage

Ich brauche nur ein Python-Skript, das Text in die Zwischenablage kopiert.

Nachdem das Skript ausgeführt wird, brauche ich die Ausgabe des Textes, der in eine andere Quelle eingefügt werden soll. Ist es möglich, ein Python-Skript zu schreiben, das diesen Job macht?

11 Solutions collect form web for “Python-Skript zum Kopieren von Text in die Zwischenablage”

Siehe Pyperclip . Beispiel (aus Pyperclip-Site):

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

Siehe auch Xerox . Aber es scheint mehr Abhängigkeiten zu haben.

Auf Mac benutze ich diese Funktion.

 import os data = "hello world" os.system("echo '%s' | pbcopy" % data) 

Es wird "Hallo Welt" in die Zwischenablage kopieren.

Tkinter verwenden:

https://stackoverflow.com/a/4203897/2804197

 try: from Tkinter import Tk except ImportError: from tkinter import Tk r = Tk() r.withdraw() r.clipboard_clear() r.clipboard_append('i can has clipboardz?') r.update() # now it stays on the clipboard after the window is closed r.destroy() 

(Ursprünglicher Autor: https://stackoverflow.com/users/449571/atomizer )

Pyperclip scheint der Aufgabe zu entsprechen.

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() 

Eine weitere Antwort zur Verbesserung: https://stackoverflow.com/a/4203897/2804197 und https://stackoverflow.com/a/25476462/1338797 (Tkinter).

Tkinter ist nett, weil es entweder mit Python (Windows) oder einfach zu installieren (Linux) enthalten ist und somit kleine Abhängigkeiten für den Endbenutzer benötigt.

Hier habe ich ein "vollgeblasenes" Beispiel, das die Argumente oder die Standard-Eingabe in die Zwischenablage kopiert und – wenn nicht auf Windows – auf den Benutzer wartet, um die Anwendung zu schließen:

 import sys try: from Tkinter import Tk except ImportError: # welcome to Python3 from tkinter import Tk raw_input = input r = Tk() r.withdraw() r.clipboard_clear() if len(sys.argv) < 2: data = sys.stdin.read() else: data = ' '.join(sys.argv[1:]) r.clipboard_append(data) if sys.platform != 'win32': if len(sys.argv) > 1: raw_input('Data was copied into clipboard. Paste and press ENTER to exit...') else: # stdin already read; use GUI to exit print('Data was copied into clipboard. Paste, then close popup to exit...') r.deiconify() r.mainloop() else: r.destroy() 

Dies zeigt:

  • Import von Tk über Py2 und Py3
  • raw_input und print() Kompatibilität
  • "Ausblenden" Tk Wurzel Fenster, wenn nötig
  • Warten auf den Ausstieg auf Linux auf zwei verschiedene Arten.

Ich versuche diese Zwischenablage 0.0.4 und es funktioniert gut.

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 

Dies ist eine veränderte Version von @Martin Thomas Antwort für GTK3 . Ich fand, dass die ursprüngliche Lösung dazu führte, dass der Prozess nie endete und mein Terminal hing, als ich das Drehbuch anrief. Das Ändern des Skripts zu dem folgenden löste das Problem für mich.

 #!/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() 

Sie werden wahrscheinlich ändern wollen, was ClipboardText zugewiesen wird, in diesem Skript ist es dem Parameter zugeordnet, auf den das Skript aufgerufen wird.

Auf einer frischen ubuntu 16.04-Installation habe ich festgestellt, dass ich das python-gobject Paket installieren python-gobject , damit es ohne einen python-gobject funktionierte.

Um native Python-Verzeichnisse zu verwenden, verwenden Sie:

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

Dann benutze:

 copy2clip('This is on my clipboard!') 

Um die Funktion aufzurufen.

(Bitte auch eine Antwort annehmen)

Dies ist die einzige Möglichkeit, die für mich mit Python 3.5.2 plus funktioniert es ist am einfachsten zu implementieren w / mit der Standard- PyData Suite

Shout out zu https://stackoverflow.com/users/4502363/gadi-oron für die Antwort (ich kopierte es komplett) von Wie kopiere ich einen String in die Zwischenablage auf Windows mit Python?

 import pandas as pd df=pd.DataFrame(['Text to copy']) df.to_clipboard(index=False,header=False) 

Ich schrieb ein wenig Wrapper dafür, dass ich in mein ipython Profil <3

PyQt5:

 from PyQt5.QtWidgets import QApplication from PyQt5 import QtGui from PyQt5.QtGui import QClipboard import sys def main(): app=QApplication(sys.argv) cb = QApplication.clipboard() cb.clear(mode=cb.Clipboard ) cb.setText("Copy to ClipBoard", mode=cb.Clipboard) sys.exit(app.exec_()) if __name__ == "__main__": main() 
Python ist die beste Programmiersprache der Welt.