I am trying to write a function that copies a string parameter to the clipboard. I intend to use this in a Python script that I've been working on. This is what I have so far (found most this snippet on another stack overflow post):
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()
My problem is that when the script stops, the copied text is no longer on the clipboard.
Is there any possible alternative or fix to this?
Is there a good platform independent solution to my problem? Or will I have to check for what OS the user is on and proceed from there?
Yes, there is one for you :)
Use pyperclip.
This worked for me and is very simple. (mac tested only)
http://www.macdrifter.com/2011/12/python-and-the-mac-clipboard.html
I suppose that you're running on Linux with Gnome.
That's normal behavior on Gnome, as soon as the source of the copy vanishes e.g. closing the Browser Window you copied from, the clipboard data gets removed too. Workaround is to install the
gnome-clipboard-daemon
which will preserve the Clipboard state like Windows and KDE do.So, there's not much you can do when running under Gnome, besides leaving your script running.