Saya hanya perlu script python yang menyalin teks ke clipboard.
Setelah script dijalankan saya membutuhkan output dari teks yang akan disisipkan ke sumber lain. Apakah mungkin untuk menulis script python yang melakukan pekerjaan ini?
Lihat Pyperclip. Contoh (diambil dari Pyperclip situs):
import pyperclip
pyperclip.copy('The text to be copied to the clipboard.')
spam = pyperclip.paste()
Juga, lihat Xerox. Tapi tampaknya memiliki lebih banyak dependensi.
Menggunakan 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()
(Penulis asli: https://stackoverflow.com/users/449571/atomizer)
Ini adalah satu-satunya cara yang bekerja untuk saya menggunakan Python 3.5.2
plus itu's mudah untuk menerapkan w/ menggunakan standar PyData
suite
Berteriak untuk https://stackoverflow.com/users/4502363/gadi-oron untuk menjawab (aku disalin sepenuhnya) dari https://stackoverflow.com/questions/579687/how-do-i-copy-a-string-to-the-clipboard-on-windows-using-python
import pandas as pd
df=pd.DataFrame(['Text to copy'])
df.to_clipboard(index=False,header=False)
Saya menulis sedikit wrapper untuk itu yang saya dimasukkan ke dalam ipython
profil <3
Untuk menggunakan Python asli direktori, gunakan:
import subprocess
def copy2clip(txt):
cmd='echo '+txt.strip()+'|clip'
return subprocess.check_call(cmd, shell=True)
pada Mac, sebagai gantinya:
import subprocess
def copy2clip(txt):
cmd='echo '+txt.strip()+'|pbcopy'
return subprocess.check_call(cmd, shell=True)
Kemudian gunakan:
copy2clip('This is on my clipboard!')
untuk memanggil fungsi.
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()
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()
Saya mencoba clipboard ini 0.0.4 dan itu bekerja dengan baik.
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
Satu jawaban untuk meningkatkan pada: https://stackoverflow.com/a/4203897/2804197 dan https://stackoverflow.com/a/25476462/1338797 (Tkinter).
Tkinter bagus, karena itu's baik disertakan dengan Python (Windows) atau mudah untuk menginstal (Linux), dan dengan demikian memerlukan sedikit ketergantungan bagi pengguna akhir.
Di sini saya memiliki "full-blown" misalnya, yang salinan argumen atau standar input, ke clipboard, dan - bila tidak di Windows - menunggu pengguna untuk menutup aplikasi:
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()
Ini menampilkan:
raw_input
dan cetak()
kompatibilitasIni adalah versi yang berubah @Martin Thoma's jawaban untuk GTK3. Saya menemukan bahwa solusi yang dihasilkan dalam proses yang tidak pernah berakhir dan terminal saya digantung ketika saya disebut script. Mengubah script berikut terselesaikan masalah untuk saya.
#!/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()
Anda mungkin akan ingin mengubah apa yang clipboardText akan ditugaskan untuk, dalam script ini itu ditugaskan untuk parameter bahwa script ini disebut dengan.
Pada segar ubuntu 16.04 instalasi, saya menemukan bahwa saya harus menginstal python-gobject
paket untuk itu untuk bekerja tanpa modul kesalahan impor.