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 -
- 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
- 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.split
funçã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)