Copiar arquivo em Python: método shutil.copy(), método shutil.copystat()
Python Copiar métodos de arquivo
Python fornece funções integradas para copiar arquivos facilmente usando o Operautilitários do System Shell.
O seguinte comando é usado para copiar o arquivo
shutil.copy(src,dst)
O comando a seguir é usado para copiar o arquivo com informações de meta-dados
shutil.copystat(src,dst)
Como copiar um arquivo em Python
Aqui estão as etapas para copiar o arquivo em Python usando o método shutil copy():
Passo 1) Capture o caminho original no diretório atual
Antes de copiarmos um arquivo, precisamos obter o caminho do arquivo original no diretório atual. No código –
- Declarando variável
- Aplicando função de divisão na variável
Explicação do código
- Primeiro vamos verificar se nosso arquivo “guru99.txt” existe ou não. Como criamos o arquivo guru99.txt anteriormente, sabemos que ele existe e continuaremos com o código
- Armazenamos o caminho do arquivo na variável “src”se o seu arquivo existir
- Assim que obtivermos o caminho, vamos separar o caminho e o nome do arquivo
- Para isso, vamos usar a divisão
path.split
função na variável de origem - O código quando executado imprime “nome do arquivo"E"caminho de arquivo”separadamente
Passo 2) Crie uma cópia do nosso arquivo existente usando o módulo shutil
Usamos o Módulo Shutil para criar uma cópia do arquivo existente. Aqui costumávamos criar uma cópia de nosso arquivo existente “guru99.txt”.
Explicação do código
- Pegue o nome do arquivo original “guru99.txt” e adicione as letras .bak no final “guru99.txt.bak”. Este nome com extensão .bak será nossa cópia duplicada
- E então usaremos a função de cópia do utilitário para copiar da origem para o destino
- Ao executar o código, você verá um arquivo duplicado com extensão .bak criado no lado direito do painel
Passo 3) Copie metadados associados ao arquivo, permissão de arquivo e outras informações
A função de cópia copia apenas o conteúdo do arquivo, mas nenhuma outra informação. Copiar metadados associado ao arquivo, permissão do arquivo e outras informações que você deve usar “copystat”função. Antes de executarmos este código, temos que excluir nosso arquivo de cópia “guru99.text.bak”.
Depois de excluir o arquivo e executar o programa, ele criará uma cópia do seu arquivo .txt, mas desta vez com todas as informações como permissão de arquivo, horário de modificação e informações de metadados. Você pode acessar o shell do sistema operacional para verificar as informações.
Aqui está o código
import os import shutil from os import path def main(): # make a duplicate of an existing file if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); #seperate the path from the filter head, tail = path.split(src) print("path:" +head) print("file:" +tail) #let's make a backup copy by appending "bak" to the name dst = src+".bak" # nowuse the shell to make a copy of the file shutil.copy(src, dst) #copy over the permissions,modification shutil.copystat(src,dst) if __name__=="__main__": main()
Passo 4) Busque as informações
Você pode buscar as informações sobre o último arquivo de texto modificado
-
Linha de código#15- Informa o dia, data, mês, ano e hora em que o arquivo .txt (guru99) foi modificado pela última vez. Usamos o módulo path para obter os detalhes do horário de modificação do arquivo e, em seguida, usaremos o módulo classes de tempo c função de tempo para converter isso em um tempo legível. Então, quando executamos o código, podemos ver que o arquivo guru99.txt foi modificado pela última vez em Seg, 8 de janeiroth às 13h35 de 2018.
-
Linha de código#17- Faz a mesma coisa fornecendo informações sobre modificação de arquivos, mas possui um formato diferente para representá-las. Aqui usamos Obter função de tempo de modificação (path.getmtime(“guru99.txt”)). Agora, em vez de usar a função c time, usaremos Da função Carimbo de data/hora e vamos construir um objeto de data e hora. Na saída, você pode ver que os detalhes do horário de modificação do arquivo são impressos em formato diferente 2018-01-08, 13:35:51.334072
Aqui está o código
# # Example file for working with o.s path module import os from os import path import datetime from datetime import date, time, timedelta import time def main(): # Get the modification time t = time.ctime(path.getmtime("guru99.txt.bak")) print(t) print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak"))) if __name__ == "__main__": main()
Resumo
- Para criar uma cópia do arquivo existente usando o código shutil.copy (src,dst)
- Para copiar todas as informações do arquivo original para um arquivo duplicado como permissão de arquivo, horário de modificação ou informações de metadados usando o código shutil.copystat(src,dst)