Copiar arquivo em Python:método shutil.copy(), shutil.copystat()
Métodos de arquivo de cópia do Python
O Python fornece funções integradas para copiar arquivos facilmente usando os utilitários do Shell do Sistema Operacional.
O seguinte comando é usado para Copiar Arquivo
shutil.copy(src,dst)
O comando a seguir é usado para Copiar Arquivo com Informações de Metadados
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():
Etapa 1) Capturar o caminho original no diretório atual
Antes de copiar um arquivo, precisamos obter o caminho do arquivo original no diretório atual. No código –
- Declarando variável
- Aplicando a 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
- Depois de obter 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 do arquivo ” separadamente
Etapa 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 do nosso arquivo existente “guru99.txt”.
Explicação do código
- Pegue o nome do arquivo original “guru99.txt” e adicione letras .bak no final “guru99.txt.bak”. Este nome com extensão .bak será nossa cópia duplicada
- E então vamos usar 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
Etapa 3) Copiar metadados associados ao arquivo, permissão do arquivo e outras informações
A função Copiar copia apenas o conteúdo do arquivo, mas nenhuma outra informação. Para copiar metadados associado ao arquivo, permissão do arquivo e outras informações que você precisa 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 arquivo .txt, mas desta vez com todas as informações, como permissão do arquivo, tempo 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()
Etapa 4) Buscar as informações
Você pode buscar as informações sobre o arquivo de texto modificado pela última vez
- 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 de caminho para obter os detalhes do tempo de modificação do arquivo e, em seguida, usaremos a 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 janeiro th às 13h35 de 2018.
- Linha de código#17- Faz a mesma coisa dando informações sobre modificação de arquivo, mas tem um formato diferente para representá-lo. Aqui usamos a função Obter tempo de modificação (path.getmtime(“guru99.txt”)). Agora, em vez de usar a função c time, vamos usar a função From Time Stamp e vai construir um objeto de data e hora. Na saída, você pode ver que os detalhes do tempo 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, use 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)
python
- Tipos de dados Python
- Operadores Python
- Instrução de passagem do Python
- Argumentos da função Python
- Dicionário Python
- E/S de arquivo Python
- Comprimento da string do Python | Exemplo do método len()
- Método Python String find() com exemplos
- Python verifica se o arquivo existe | Como verificar se existe um diretório em Python
- Python JSON:codificar (despejar), decodificar (carregar) e ler arquivo JSON