HOWTO · Python

Copiar texto al portapapeles en Python

Este tutorial analiza cómo copiar texto al portapapeles en Python.

En esta página

Las herramientas de Python para el portapapeles envían texto al portapapeles del sistema operativo, desde donde puede pegarse en otra aplicación. Para texto plano, pyperclip ofrece una API sencilla para copiar y, opcionalmente, pegar. Otras opciones son pyperclip3 para flujos de trabajo con bytes, clipboard y xerox como alternativas, tkinter para programas con interfaz gráfica y pandas para tablas. El acceso al portapapeles depende del sistema operativo y de la sesión en la que se ejecuta el programa.

Copiar texto con pyperclip

Instale el paquete con python -m pip install pyperclip. El breve programa siguiente se ejecuta con la biblioteca estándar de Python y muestra el valor de texto que puede pasarse a pyperclip.copy() en un entorno donde estén disponibles el paquete y el portapapeles del sistema.

text_to_copy = "Hello, Clipboard!"
print(text_to_copy)
Hello, Clipboard!

Para enviar ese valor al portapapeles, use import pyperclip y después pyperclip.copy(text_to_copy). Use pyperclip.paste() si también necesita leer el texto actual del portapapeles. Estas llamadas del paquete requieren un mecanismo de portapapeles funcional en la sesión actual; algunas configuraciones de Linux también necesitan una sesión de escritorio y utilidades para el portapapeles.

Usar pyperclip3 cuando necesite bytes

Instale el paquete con python -m pip install pyperclip3 si su código necesita datos en bytes del portapapeles. Sus operaciones copy() y paste() manejan bytes. Convierta los valores de forma explícita: antes de copiar un número, use str(number).encode("utf-8"); después, decodifique los bytes devueltos y conviértalos al tipo necesario si hace falta. El portapapeles almacena texto o bytes, no el tipo original del objeto de Python.

Copiar texto con el paquete clipboard

Instale el paquete clipboard con python -m pip install clipboard. El paquete ofrece copy() y paste(); por ejemplo, después de import clipboard as c, llame a c.copy("Python Clipboard") y a c.paste(). Use el mismo alias en ambas llamadas. Esta es una alternativa orientada al texto y también depende de que el entorno anfitrión admita el acceso al portapapeles.

Usar xerox como otro paquete para el portapapeles

Instale el paquete con python -m pip install xerox y luego use import xerox, xerox.copy("Python Xerox Example") y xerox.paste() para trabajar con texto. La compatibilidad con plataformas y las dependencias del sistema pueden variar según la versión instalada del paquete y el sistema operativo. Si no puede acceder al portapapeles, consulte las instrucciones de instalación del paquete.

Usar tkinter en aplicaciones con interfaz gráfica

Si el programa ya tiene una interfaz gráfica, tkinter puede usar los métodos del sistema de ventanas para el portapapeles. Consulte cómo instalar tkinter en Python si no está disponible. Se necesita una pantalla gráfica. Cree una ventana raíz y luego llame a root.clipboard_clear(), root.clipboard_append(text_to_copy) y root.update() para enviar texto. update() procesa los eventos de Tk; la propiedad del portapapeles y su persistencia después de que finalice el programa dependen del sistema de ventanas. Los programas con interfaz gráfica pueden mantener activo el bucle de eventos mientras el usuario trabaja.

Copiar un DataFrame con pandas

Para datos tabulares, instale pandas y use DataFrame.to_clipboard(), por ejemplo, df.to_clipboard(index=False, header=False). Este método da formato a una tabla para pegarla en una hoja de cálculo u otra aplicación tabular; no es un método general para copiar objetos arbitrarios de Python. Los dos argumentos omiten las etiquetas de fila y los nombres de columna. Quite cualquiera de los argumentos para incluir esa parte. La llamada también requiere un mecanismo de portapapeles compatible con el entorno actual.