HOWTO · Python

Copiar texto para a área de transferência em Python

Aprenda a copiar texto Python para a área de transferência do sistema com pacotes, tkinter ou pandas.

Nesta página

As ferramentas de área de transferência do Python enviam texto para a área de transferência do sistema operativo, para que possa ser colado noutra aplicação. Para texto simples, o pyperclip oferece uma API compacta de cópia e uma API opcional de colagem. Outras opções incluem o pyperclip3 para fluxos de trabalho orientados a bytes, o clipboard e o xerox como alternativas, o tkinter para programas com GUI e o pandas para tabelas. O acesso à área de transferência depende do sistema operativo e da sessão em que o programa é executado.

Copiar texto com pyperclip

Instale o pacote com python -m pip install pyperclip. O programa curto abaixo é executado com a biblioteca padrão do Python e apresenta o valor de texto que pode passar para pyperclip.copy() num ambiente em que o pacote e a área de transferência do sistema estejam disponíveis.

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

Para enviar esse valor para a área de transferência, utilize import pyperclip seguido de pyperclip.copy(text_to_copy). Utilize pyperclip.paste() quando também precisar de ler o texto atual da área de transferência. Estas chamadas ao pacote precisam de um mecanismo de área de transferência funcional na sessão atual; algumas configurações Linux também precisam de uma sessão de ambiente de trabalho e de utilitários de área de transferência.

Utilize pyperclip3 quando precisar de bytes

Instale com python -m pip install pyperclip3 quando o seu código precisar de dados em bytes da área de transferência. As suas operações copy() e paste() tratam de bytes. Converta os valores explicitamente: utilize str(number).encode("utf-8") antes de copiar um número e, em seguida, descodifique os bytes devolvidos e analise-os, se necessário. Uma área de transferência guarda texto ou bytes, e não o tipo de objeto Python original.

Copiar texto com o pacote clipboard

Instale o pacote clipboard com python -m pip install clipboard. O pacote expõe copy() e paste(); por exemplo, depois de import clipboard as c, chame c.copy("Python Clipboard") e c.paste(). Mantenha o alias consistente em ambas as chamadas. Esta é uma alternativa orientada para texto e continua a depender do suporte à área de transferência do ambiente anfitrião.

Utilize xerox como outro pacote de área de transferência

Instale com python -m pip install xerox e, em seguida, utilize import xerox, xerox.copy("Python Xerox Example") e xerox.paste() para texto. O suporte à plataforma e eventuais dependências do sistema podem variar consoante a versão do pacote instalada e o sistema operativo, por isso consulte as instruções de instalação do pacote se o acesso à área de transferência não estiver disponível.

Utilize tkinter para aplicações GUI

Quando um programa já tem uma GUI, o tkinter pode utilizar os métodos de área de transferência do sistema de janelas. Veja como instalar o tkinter em Python se ele estiver em falta. É necessário um ecrã gráfico. Crie uma janela raiz e, em seguida, chame root.clipboard_clear(), root.clipboard_append(text_to_copy) e root.update() para enviar texto. O update() processa eventos Tk; a propriedade da área de transferência e a sua persistência depois de o programa terminar dependem do sistema de janelas. Os programas com GUI podem manter o seu ciclo de eventos ativo enquanto o utilizador trabalha.

Copiar um DataFrame com pandas

Para dados tabulares, instale o pandas e utilize DataFrame.to_clipboard(), por exemplo df.to_clipboard(index=False, header=False). Isto formata uma tabela para colar numa folha de cálculo ou noutra aplicação tabular; não é um método geral para copiar objetos Python arbitrários. Os dois argumentos omitem os rótulos das linhas e os nomes das colunas. Remova qualquer um dos argumentos para incluir essa parte. A chamada também precisa de um mecanismo de área de transferência suportado pelo ambiente atual.