Comment copier dans le presse-papiers en python ?
Copier-coller est une chose si simple du quotidien. Cependant, il nâexiste pas de maniĂšre simple et native pour copier le contenu de nos variables en Python dans le presse-papiers !
Heureusement, de nombreux modules ont vu le jour et je vous donne toutes les alternatives dans cet article.
Pour copier du texte dans le presse-papiers en Python, on utilise le module pyperclip avec la méthode pyperclip.copy(la_variable_a_copier_dans_le_presse_papiers)
.
Et voilĂ , vous savez comment copier du contenu facilement dans votre presse-papiers avec pyperclip.
Si vous voulez allez plus loin dans le copy/paste en Python, alors la suite de cet article vous intéressera.
Que ce soit avec des packages crĂ©Ă©s par des dĂ©veloppeurs ou bien des bouts de code (snippets) quâon trouve sur internet, on peut facilement copier coller du contenu avec Python en 2023.
Explorons ensemble quelles sont toutes les options pour copier-coller depuis Python !
Mais avant, on revoit en une phrase câest quâest le presse-papiers.
Câest quoi le presse-papiers ?
Le presse-papiers permet de copier du contenu comme du texte, des images, des photos, de la musique ou des vidéos puis de le coller ailleurs.
En Python, on ne peut pas simplement utiliser le presse-papiers en faisant CTRL+C suivi de CTRL+V. Si on veut mettre la valeur dâune variable dans le presse-papiers de maniĂšre automatisĂ©e, on doit utiliser une mĂ©thode ou fonction Python.
Il nâexiste pas de mĂ©thode native Ă Python pour mettre des valeurs dans le presse-papiers sans faire dâappel systĂšme, on utilise donc un package python externe comme pyperclip, clipboard, xerox ou encore pandas et tkinter.
Comment copier dans le presse-papiers avec Pyperclip en python ?
Avant de pouvoir utiliser pyperclip, on doit lâinstaller avec pip dans le terminal :
pip install pyperclip
Vous pouvez ensuite utiliser sa méthode copy()
pour copier du texte dans le presse-papiers :
import pyperclip
pyperclip.copy("Hello world avec pyperclip")
print(pyperclip.paste())
Ce qui donne en sortie standard :
Hello world avec pyperclip
Comment copier dans le presse-papiers avec clipboard en python ?
Avant de pouvoir utiliser clipboard, on doit lâinstaller avec pip dans le terminal :
pip install clipboard
Vous pouvez ensuite utiliser sa méthode copy()
pour copier du texte dans le presse-papiers :
import clipboard
clipboard.copy("Hello world avec clipboard")
print(clipboard.paste())
Ce qui donne en sortie standard :
Hello world avec clipboard
Comment copier dans le presse-papiers avec xerox en python ?
Avant de pouvoir utiliser xerox, on doit lâinstaller avec pip dans le terminal :
pip install xerox
Vous pouvez ensuite utiliser sa méthode copy()
pour copier du texte dans le presse-papiers :
import xerox
xerox.copy(u'Hello world avec xexox')
print(xerox.paste())
Ce qui donne en sortie standard :
Hello world avec xexor
Comment copier dans le presse-papiers avec pandas en python ?
Avant de pouvoir utiliser pandas, on doit lâinstaller avec pip dans le terminal :
pip install pandas
Vous pouvez ensuite créer un DataFrame
puis utiliser sa méthode to_clipboard()
pour copier du texte dans le presse-papiers :
import pandas
df = pandas.DataFrame(['Hello world avec pandas'])
df.to_clipboard(index=False, header=False)
Vous y avez ensuite accĂšs en tapant control+v
sur votre clavier. Clairement câest overkill dâutiliser panda
juste pour copier quelque chose dans le presse-papiers.
Pensez à utiliser un module plus léger et adapter comme pyperclip
ou xerox
, sauf si vous utilsez déjà pandas
dans votre projet.
Câest encore mieux si que ce que vous devez copier est dĂ©jĂ de type DataFrame
. Car comme vous pouvez le voir, on doit mettre notre contenu texte dans une liste et on abuse de pandas en créant un DataFrame
avec une seule valeur dans un objet de type list
.
En plus, pandas
utilise pyperclip
pour faire cette opĂ©ration. Câest donc, encore une fois, bien mieux dâutiliser pyperclip
, sauf si vous voulez un tableau de data complexe que vous traitez déjà avec pandas
.
Bref je déconseille fortement.
Comment copier dans le presse-papiers avec tkinter en python ?
Câest aussi possible de mettre du contenu dans le clipboard avec tkinter.
Avant de pouvoir utiliser tkinter, on doit lâinstaller avec pip dans le terminal :
pip install tkinter
Vous pouvez ensuite utiliser sa méthode clipboard_get()
pour copier du texte dans le presse-papiers :
from tkinter import Tk
root = Tk()
root.withdraw()
number = root.clipboard_get()
Encore une fois, je dĂ©conseille fortement dâutiliser un mastodonte comme tkinter juste pour un simple copier-coller que vous pouvez effectuer avec les autres packages python beaucoup plus lĂ©gers quâon a vu plus tĂŽt dans cet article.
Comment copier dans le presse-papiers sous Windows en python ?
La commande clip
est arrivée avec les versions les plus récentees de Windows. On peut donc utiliser cette commande depuis le terminal sous windows et copier du contenu dans le clipboard. Avec Python, on peut utiliser cet outils systÚme avec le module subprocess et donc copier le contenu de notre variable dans le presse-papiers.
process = subprocess.Popen(['clip'], stdin=subprocess.PIPE)
process.communicate("MON_CONTENU_A_METTRE_DANS_LE_CLIPBOARD")
Comment copier dans le presse-papiers sous Mac OS en python ?
Pour copier du contenu dans le presse-papiers depuis Mac OS, on utilise la commande UNIX pbcopy
depuis un script Python. On utiliser méthode Popen
de subprocess ou encore la méthode system
de os
pour copier dans le clipboard.
Si vous nâĂȘtes pas encore familier avec la commande UNIX pbcopy
(et pbpaste
), je vous recommande sa manpage.
Option 1 : avec subprocess
import subprocess
process = subprocess.Popen('pbcopy', env={'LANG': 'fr_FR.UTF-8'}, stdin=subprocess.PIPE)
process.communicate("MON_CONTENU_A_METTRE_DANS_LE_CLIPBOARD")
Option 2 : avec os
os.system('echo MON_CONTENU_A_METTRE_DANS_LE_CLIPBOARD | tr -d "\n" | pbcopy')
Aller plus loin avec Python
Python est un langage passionnant, jâen parle souvent sur ce blog, voici quelques articles qui vous intĂ©resseront peut-ĂȘtre :
Je m'appelle Thomas, et je code depuis plus de 20 ans. Depuis ma sortie de la premiĂšre promotion de l'Ăcole 42, j'ai conçu et dĂ©veloppĂ© des centaines d'applications et de sites web. Sur ce blog, je partage avec vous les stratĂ©gies les plus efficaces pour maĂźtriser l'art de coder et progresser rapidement.