Arquivo COPY do Python usando shutil.copy (), shutil.copystat ()

Índice:

Anonim

Métodos de cópia de arquivo Python

Python fornece funções embutidas para copiar arquivos facilmente usando os utilitários do Shell do sistema operacional.

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)

Aqui estão as etapas para copiar o arquivo em Python

Etapa 1) Antes de copiar um arquivo, precisamos obter o caminho para o arquivo original no diretório atual. No código -

  1. Declarando variável
  2. 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
  • Nós 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 path.splitfunção de divisão na variável de origem
  • O código quando executado imprime " nome do arquivo " e " caminho do arquivo " separadamente

Etapa 2) 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 vamos usar a função de cópia do utilitário para copiar da fonte para o destino
  • Ao executar o código, você verá um arquivo duplicado com a extensão .bak criado no lado direito do painel

Etapa 3) A função de cópia copia apenas o conteúdo do arquivo, mas nenhuma outra informação. Para copiar metadados associados ao arquivo, permissão de arquivo e outras informações, você deve usar a função " copystat ". Antes de executar este código, temos que deletar 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 do arquivo, hora da 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 osimport shutilfrom os import pathdef main():# make a duplicate of an existing fileif path.exists("guru99.txt"):# get the path to the file in the current directorysrc = path.realpath("guru99.txt");#seperate the path from the filterhead, tail = path.split(src)print("path: +head)print("file: +tail)#let's make a backup copy by appending "bak" to the namedst = src+".bak"# nowuse the shell to make a copy of the fileshutil.copy(src, dst)#copy over the permissions,modificationshutil.copystat(src,dst)if __name__=="__main__":main()

Etapa 4) Você pode buscar as informações sobre o arquivo de texto modificado pela última vez

  • Linha de código # 15- Diz 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 de tempo de modificação do arquivo e, em seguida, usaremos a função de tempo c das classes de tempo para converter isso em um tempo legível. Assim, quando executar o código, podemos ver a guru99.txt arquivo foi modificada pela última vez em Mon, 08 de janeiro th em 13:35 2018.
  • Linha de código 17- Faz a mesma coisa dando informações sobre a modificação do arquivo, mas tem um formato diferente para representá-lo. Aqui usamos a função Get Modification Time (path.getmtime ("guru99.txt")). Agora, em vez de usar a função c time, vamos usar a função From Time Stamp e construir um objeto de data e hora. Na saída, você pode ver os detalhes da hora de modificação do arquivo impressos em um formato diferente de 08-01-2018, 13: 35: 51.334072

Aqui está o código

## Example file for working with o.s path moduleimport osfrom os import pathimport datetimefrom datetime import date, time, timedeltaimport timedef main():# Get the modification timet = 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 o arquivo duplicado, como permissão de arquivo, hora de modificação ou informações de metadados , use o código shutil.copystat (src, dst)