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 –

  1. Declarando variável
  2. Aplicando função de divisão na variável

Copiar um arquivo em Python

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”.

Copiar um arquivo em Python

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”.

Copiar um arquivo em Python

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.

Copiar um arquivo em Python

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

Copiar um arquivo em Python

  • 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)