Você quer melhorar suas habilidades em Python? Então você pode tentar realizar algumas tarefas em seu computador com Python. Copiar e colar arquivos de um diretório para outro com Python é uma maneira divertida de fazer isso.
Além de ser divertido, ele permite que você leia e grave arquivos rapidamente, sem se distrair do código. Se você é novo no Python, é uma habilidade que você ainda precisa aprender de uma forma ou de outra. Então, vamos descobrir como copiar arquivos com Python por meio deste artigo.
Requisitos para copiar arquivos com Python
Existem muitas maneiras de copiar e colar arquivos com Python. Portanto, o requisito para fazer isso varia e depende do método que você decidir usar.
Embora você possa não precisar de módulos extras para copiar arquivos com Python, você ainda pode usar bibliotecas integradas, se desejar.
Por exemplo, se você deseja usar o os método, você precisa importá-lo em seu código. No entanto, uma das maneiras populares de copiar arquivos com Python é usando o fechadura biblioteca.
Vamos ver como podemos usar esses vários métodos para copiar arquivos com Python.
Como copiar arquivos usando a biblioteca Shutil integrada do Python
O fechadura módulo é uma biblioteca Python integrada e poderosa para ler e escrever arquivos rapidamente em Python.
Para usá-lo, você só precisa fornecer o caminho completo dos arquivos de origem e destino.
Em essência, fechadura assume este formato:
shutil.copy ([caminho do diretório de origem], [caminho do diretório de destino], follow_symlinks = True)
Por exemplo, o código a seguir usa shutil.copy () para copiar um arquivo chamado copy.txt de uma pasta chamada minha pasta em outro chamado destino. Em seguida, ele renomeia o arquivo de destino como newFile.txt:
import Shutil
sourceFile = "C: /Users/some_directories/my_folder/copy.txt"
destinationFile = "C: /Users/some_directories/destination/newFile.txt"
shutil.copy (sourceFile, destinationFile, follow_symlinks = True)
Observe que você pode escrever seu código em qualquer editor de código de sua escolha. Você pode então executá-lo usando a linha de comando.
No entanto, você também pode usar o Python Integrated Development Environment (IDLE) padrão se não estiver familiarizado com a execução do Python por meio da linha de comando.
Relacionado: Comandos do prompt de comando (CMD) que você deve conhecer
O shutil.copy método não copia os metadados do arquivo de origem. Em essência, sua máquina vê o arquivo de destino como um arquivo inteiramente novo e fornece a ele novos metadados.
No entanto, para copiar os metadados junto com o arquivo original, use o shutil.copy2 método:
import Shutil
shutil.copy2 (sourceFile, destinationFile, follow_symlinks = True)
O método acima preserva os metadados originais do arquivo antigo no arquivo de destino. Por exemplo, o arquivo de destino retém a data em que você criou o arquivo de origem, seu tamanho e outros atributos.
O follow_symlinks argumento é uma declaração de link simbólico que permite fechadura siga um caminho absoluto. Portanto, você precisa incluí-lo se os arquivos de origem e destino estiverem em diretórios diferentes.
Mas se ambos os arquivos estiverem em seu diretório de trabalho atual, você não precisa incluir um follow_symlinks. Se você fizer isso, o Python gerará uma exceção de sintaxe.
Portanto, se você estiver colando o arquivo de origem em seu diretório de trabalho atual, seu código deve ser semelhante a este:
import Shutil
shutil.copy2 (sourceFile, destinationFile)
Além de usar os métodos shutil acima, você também pode usar shutil.copyfile ou shutil.copyfileobj.
Usando shutil.copyfileobj é um pouco diferente, pois requer o embutido abrir função. Então, você precisa ler e escrever binário, incluindo o "rb" e "wb" argumentos.
Vamos ver como o shutil.copyfileobj método funciona usando os mesmos diretórios que usamos anteriormente:
import Shutil
sourceFilePath = open ("C: /Users/some_directories/my_folder/copy.txt", "rb")
destinationFilePath = open ("C: /Users/some_directories/destination/newFile.txt", "wb")
shutil.copyfileobj (sourceFilePath, destinationFilePath)
Observe que shutil.copyfileobj () não requer o follow_symlinks argumento.
Contudo, shutil.copyfile () funciona da mesma maneira .cópia de e .copy2 faz. Eles diferem apenas insignificantemente em suas funções internas.
Para usar o shutil.copyfile () método:
import Shutil
sourceFilePath = "C: /Users/some_directories/my_folder/copy.txt"
destinationFilePath = "C: /Users/some_directories/destination/newFile.txt"
shutil.copyfile (sourceFilePath, destinationFilePath)
Como copiar arquivos com o módulo OS
O os o módulo usa dois métodos integrados para copiar arquivos; os.system () e os.popen () métodos.
O os.system () método permite que você imite o ambiente de linha de comando.
No entanto, uma deficiência dos métodos de sistema operacional é que eles apenas copiam arquivos dentro do seu diretório de trabalho atual.
Para usar o os.system () método no Windows:
importar os
os.system ('copiar origem.txt destino.txt)
Você também pode usar o xcopy Comando do terminal do Windows:
importar os
os.system ('xcopy source.txt destination.txt)
Para usar o os.system método no Linux, substitua cópia de com cp:
importar os
os.system ('cp source.txt destination.txt)
Como copiar arquivos usando o método os.popen
Para usar este método, substitua os.system () com os.popen ().
No Windows, use:
importar os
os.popen ('copiar origem.txt destino.txt)
Como fizemos com os.system (), substituir cópia de com cp para usar este método no Linux:
importar os
os.popen ('cp source.txt destination.txt)
Como copiar arquivos com o módulo de subprocesso do Python
Além dos métodos acima, você também pode usar o subprocesso () biblioteca para copiar arquivos em Python:
importar subprocesso como sp
sp.call ("copiar sourceFile destinationFile", shell = True)
No entanto, no Linux, use:
importar subprocesso como sp
sp.call ("cp sourceFile destinationFile", shell = True)
O subprocesso biblioteca também usa subprocess.check_out () método. Funciona da mesma maneira subprocess.call () faz:
importar subprocesso como sp
sp.check_out ("copiar sourceFile destinationFile", shell = True)
No Linux, substitua cópia de com cp:
importar subprocesso como sp
sp.check_out ("cp sourceFile destinationFIle", shell = True)
No entanto, como os métodos os, os métodos de subprocesso funcionam apenas com arquivos em seu diretório de trabalho atual.
Observação: Você também pode copiar arquivos em uma pasta se ela estiver no mesmo diretório de trabalho do arquivo de origem. Tudo o que você precisa fazer é substituir o nome do arquivo de destino pelo nome da pasta de destino. No entanto, certifique-se de que a pasta de destino e o arquivo de origem estejam em seu diretório de trabalho atual.
Como copiar arquivos em Python sem usar bibliotecas
Você também pode copiar arquivos em Python sem depender de nenhuma biblioteca. Como o método shutil, você só precisa dos caminhos completos dos diretórios de origem e destino.
Veja como fazer isso:
sourcePath = "C: /Users/source_directories/my_folder/copy.txt"
destinationPath = "C: /Users/some_directories/destination_directories/newFile.txt"
com open (sourcePath, "rb") conforme lido:
com open (destinationPath, "wb") como myfile:
myfile.write (read.read ())
Para tornar o código reutilizável, você pode modificá-lo em uma função:
def copyFile (source = None, destination = None):
se não (origem e destino) == Nenhum:
com open (source, "rb") como se lê:
com open (destination, "wb") como myfile:
myfile.write (read.read ())
outro:
imprimir ("Por favor, insira os caminhos de origem e destino")
copyFile (sourcePath, destinationPath)
É isso. Você acabou de fazer uma copiadora de arquivo reutilizável com Python sem usar nenhuma biblioteca.
Continue automatizando tarefas com Python
Além de ajudá-lo a manter o foco em seu código durante a construção de projetos, copiar arquivos com Python permite que você entenda melhor o gerenciamento de arquivos com Python. No entanto, brincar com as tarefas Python é uma maneira de melhorar suas habilidades em Python, especialmente se você for um iniciante.
Por exemplo, você pode alterar a data e a hora no seu PC com o módulo os. Você pode até escrever comandos bash personalizados com Python, se desejar.
Quer fazer seus próprios programas de linha de comando Python, mas acha isso muito difícil? Use o Click, uma ferramenta útil do Python para otimizar seu código.
- Programação
- Pitão

Idowu é apaixonado por qualquer tecnologia inteligente e produtividade. Em seu tempo livre, ele brinca com programação e muda para o tabuleiro de xadrez quando está entediado, mas também adora quebrar a rotina de vez em quando. Sua paixão por mostrar às pessoas o caminho da tecnologia moderna o motiva a escrever mais.
Assine a nossa newsletter
Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!
Mais um passo…!
Confirme o seu endereço de e-mail no e-mail que acabamos de enviar.