how can I copy a string to the windows clipboard? python 3

8.9k views Asked by At

If I have a variable var = 'this is a variable'

how can I copy this string to the windows clipboard so I can simply Ctrl+v and it's transferred elsewhere? I don't want to use anything that isn't that isn't built in, I hope it's possible.

thanks!

2

There are 2 answers

6
dawg On BEST ANSWER

You can do this:

>>> import subprocess
>>> def copy2clip(txt):
...    cmd='echo '+txt.strip()+'|clip'
...    return subprocess.check_call(cmd, shell=True)
...
>>> copy2clip('now this is on my clipboard')
1
KAG1224 On

Pyperclip provides a cross-platform solution.

One note about this module: It encodes strings into ASCII, so you made need to perform some encoding/decoding work on your strings to match it prior running it through Pyperclip.

Example:

import pyperclip

#Usual Pyperclip usage:
string = "This is a sample string."
pyperclip.copy(string)
spam = pyperclip.paste()

#Example of decoding prior to running Pyperclip:
strings = open("textfile.txt", "rb")
strings = strings.decode("ascii", "ignore")
pyperclip.copy(strings)
spam = pyperclip.paste()

Probably an obvious tip but I ran into trouble until I looked at Pyperclip's code.