Comment copier dans le presse-papiers en python ?

Article publié le et mis à jour le .

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 :