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.splitfunção na variável de origem - O código quando executado imprime “nome do arquivoecaminho 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)





