J'ai juste besoin d'un script python) qui copie le texte dans le presse-papier.
Une fois le script exécuté, j'ai besoin que la sortie du texte soit collée dans une autre source. Est-il possible d'écrire un script python qui fait ce travail?)
Sur mac j'utilise cette fonction.
import os
data = "hello world"
os.system("echo '%s' | pbcopy" % data)
Il copiera "bonjour le monde" dans le presse-papiers.
Utilisez Tkinter:
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()
(Auteur original: https://stackoverflow.com/users/449571/atomizer )
C’est la seule façon qui a fonctionné pour moi en utilisant Python 3.5.2
plus il est plus facile à implémenter avec la suite standard PyData
Crier à https://stackoverflow.com/users/4502363/gadi-oron pour la réponse (je l'ai copiée complètement) à partir de comment copier une chaîne dans le presse-papiers sous Windows en utilisant Python?
import pandas as pd
df=pd.DataFrame(['Text to copy'])
df.to_clipboard(index=False,header=False)
J'ai écrit un petit wrapper pour cela que j'ai mis dans mon profil ipython
<3
Pyperclip semble être à la hauteur de la tâche.
Pour utiliser les répertoires natifs Python, utilisez:
import subprocess
def copy2clip(txt):
cmd='echo '+txt.strip()+'|clip'
return subprocess.check_call(cmd, Shell=True)
Alors utilisez:
copy2clip('This is on my clipboard!')
appeler la fonction.
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 __== "__main__":
main()
Encore une réponse à améliorer sur: https://stackoverflow.com/a/4203897/2804197 et https://stackoverflow.com/a/25476462/1338797 (Tkinter ).
Tkinter est agréable, car il est inclus avec Python (Windows) ou facile à installer (Linux), et nécessite donc peu de dépendances pour l'utilisateur final.
J'ai ici un exemple "complet", qui copie les arguments ou l'entrée standard dans le presse-papiers et, lorsqu'il n'est pas sous Windows, attend que l'utilisateur ferme l'application:
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()
Cette vitrines:
raw_input
Et print()
J'essaie ce presse-papiers 0.0.4 et cela fonctionne bien.
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
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 __== "__main__":
main()
Ceci est une version altérée de la réponse de @Martin Thoma pour GTK. J'ai constaté que la solution d'origine aboutissait à un processus sans fin et que mon terminal était bloqué lorsque j'ai appelé le script. Changer le script comme suit a résolu le problème pour moi.
#!/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 __== "__main__":
main()
Vous voudrez probablement changer le contenu de clipboardText, dans ce script, il est assigné au paramètre avec lequel le script est appelé.
Sur une nouvelle installation d'ubuntu 16.04, j'ai découvert que je devais installer le python-gobject
package pour qu'il fonctionne sans erreur d'importation de module.