2017-10-18 9 views
1

Si j'exécute ce code, cela fonctionne correctement. Mais si je copie quelque chose en utilisant le clavier (Ctrl + C), alors comment puis-je coller le texte présent dans le presse-papier dans n'importe quelle zone de saisie ou zone de texte en python?Comment coller le texte copié à partir du clavier en python

import pyperclip 
pyperclip.copy('The text to be copied to the clipboard.') 
spam = pyperclip.paste() 

Répondre

0

Vous devez supprimer la ligne:

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

Parce qu'il l'emporte sur ce que vous copié à l'aide du clavier.


Par exemple, j'ai copié vous la question de titre, et voici comment je collais en shell python:

>>> import pyperclip 
>>> pyperclip.paste() 
'How do I paste the copied text from keyboard in python\n\n' 
>>> 
0

Vous voulez passer pyperclip.paste() au même endroit que vous placez une chaîne pour votre entrée ou insertions de widget de texte.

Jetez un coup d'œil à cet exemple de code.

Il y a un bouton pour copier ce qui se trouve dans le champ de saisie et un autre pour le coller dans le champ de saisie.

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() 

Sinon, vous pouvez simplement faire Ctrl +V: D

0

Si vous utilisez déjà tkinter dans votre code, et tout ce dont vous avez besoin est le contenu dans le presse-papiers. Ensuite, tkinter a une méthode intégrée pour faire exactement cela.

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

Pour ajouter le texte copié dans une tkinter entrée/zone de texte, vous pouvez utiliser une variable tkinter:

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

et lien cette variable au widget d'entrée.

box = tk.Entry(root, textvariable = var)