Articles

Copiar um ficheiro em Python

nos nossos tutoriais anteriores, aprendemos algumas operações de ficheiros Python, como ler, escrever e apagar. Vamos aprender a copiar um arquivo em Python neste tutorial.

podemos copiar um arquivo em Python usando métodos diferentes sob os abaixo mencionados módulos,

  • shutil o módulo
  • os o módulo
  • subprocess o módulo

neste tutorial, vamos aprender a utilizar os diferentes métodos fornecidos por módulos acima para copiar um arquivo em Python.

1. o módulo shutil para copiar um ficheiro em Python

o móduloshutil fornece alguns métodos fáceis de usar que podemos remover, bem como copiar um ficheiro em Python. Vamos olhar para os diferentes métodos definidos sob este módulo usado especificamente para copiar.

1. copyfileobj ()

The copyfileobj() method copies the content of the source file to the target file using their respective file objects. Vamos dar uma olhada no código abaixo,

import shutilsrc_file_obj=open('src.txt', 'rb')targ_file_obj= open('targ.txt' , 'wb')shutil.copyfileobj( src_file_obj , targ_file_obj )

Nota: que os objetos de arquivo deve estar apontando para o 0 posições (posição inicial) para tanto a respectiva fonte e arquivos de destino, para copiar todo o conteúdo.

2. copyfile ()

The copyfile() method copies the content from the source to the target file using the file paths. Devolve a localização do ficheiro de destino. A localização do ficheiro de destino deve ser gravável ou então ocorreria uma excepção de OSerror.

import shutilshutil.copyfile( 'src.txt' , 'targ.txt' )

deve-se ter em mente que o método só permite o uso de caminhos de arquivos e não diretórios.

3. copy ()

este método copia o ficheiro de código para o ficheiro de destino ou para a pasta de destino. Ao contrário de copyfile(), o método copy() permite o uso do diretório alvo como argumento e também copia as permissões do arquivo. copy() devolve a localização do ficheiro de destino após copiar o conteúdo.

import shutilshutil.copy('/Users/test/file.txt', '/Users/target/')

a file named ‘file.o txt ‘ é criado no destino de destino com todo o conteúdo e permissões copiadas de ‘/Users/test/file.txt.

4. copy2 ()

The copy2() method is used exactly the same way as of the copy() method. Eles também funcionam da mesma forma, exceto pelo fato de que copy2() também copia os meta-dados do arquivo fonte.

import shutilshutil.copy2('/Users/test/file.txt', '/Users/target/')

2. Módulo os para copiar um ficheiro em Python

1. popen ()

The popen() method creates a pipe to the command, cmd. O método devolve um objecto de ficheiro ligado ao encanamento cmd. Dê uma olhada no código abaixo,

#for Windowsimport osos.popen('copy src.txt targ.txt' )
#for Linuximport osos.popen('cp src.txt targ.txt' )

Com este método, não só podemos copiar os arquivos, mas também a execução de outros comandos normais.

2. system ()

The system() method directly calls and executes a command argument in a subshell. Seu valor de retorno depende do SO que executa o programa. Para Linux, é o estado de saída, enquanto Para Windows é o valor de retorno pela shell do sistema.

#for Linuximport osos.system(' cp src.txt targ.txt' )
#for Windowsimport osos.system(' copy src.txt targ.txt' )

3. Módulo de subprocessamento para copiar um ficheiro em Python

1. call ()

The call() method similar to os.system() directly calls or runs the command passed as an argument to the function.

# In Linuximport subprocesssubprocess.call('cp source.txt target.txt', shell=True)