How do I paste the copied text from keyboard in python
Asked Answered
R

3

5

If I execute this code, it works fine. But if I copy something using the keyboard (Ctrl+C), then how can I paste the text present on clipboard in any entry box or text box in python?

import pyperclip
pyperclip.copy('The text to be copied to the clipboard.')
spam = pyperclip.paste()
Rapp answered 18/10, 2017 at 18:56 Comment(0)
A
3

You will want to pass pyperclip.paste() the same place you would place a string for your entry or text widget inserts.

Take a look at this example code.

There is a button to copy what is in the entry field and one to paste to entry field.

import tkinter as tk
from tkinter import ttk
import pyperclip

root = tk.Tk()

some_entry = tk.Entry(root)
some_entry.pack()

def update_btn():
    global some_entry
    pyperclip.copy(some_entry.get())

def update_btn_2():
    global some_entry
    # for the insert method the 2nd argument is always the string to be
    # inserted to the Entry field.
    some_entry.insert(tk.END, pyperclip.paste())

btn = ttk.Button(root, text="Copy to clipboard", command = update_btn)
btn.pack()

btn2 = ttk.Button(root, text="Paste current clipboard", command = update_btn_2)
btn2.pack()


root.mainloop()

Alternatively you could just do Ctrl+V :D

Anagoge answered 18/10, 2017 at 19:11 Comment(0)
P
2

You need to remove the following line, because it overwrites what you have copied with the keyboard.

pyperclip.copy('The text to be copied to the clipboard.')

For example, I copied you question's title, and here's how I pasted it into python shell:

>>> import pyperclip 
>>> pyperclip.paste() 
'How do I paste the copied text from keyboard in python\n\n'
>>> 
Pincas answered 18/10, 2017 at 19:3 Comment(0)
A
2

If you're already using tkinter in your code, and all you need is the content in the clipboard. Then tkinter has an in-built method to do just that.

import tkinter as tk
root = tk.Tk()
spam = root.clipboard_get()

To add the copied text in a tkinter Entry/Textbox, you can use a tkinter variable:

var = tk.StringVar()
var.set(spam)

And link that variable to the Entry widget.

box = tk.Entry(root, textvariable = var)
Aspersion answered 19/10, 2017 at 17:2 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.