Aqui vamos nos aprofundar em como trabalhar com arquivos em Python, realizando várias operações e usando diferentes métodos que existem em Python.


Movendo o cursor dentro do arquivo em Python

O método tell() é usado para encontrar a localização atual do cursor dentro do arquivo.

O método  seek(deslocamento, de onde) é usado para mover o ponteiro com o deslocamento dado, respectivo ao de onde. Donde pode ter um dos valores abaixo.


0 →  desde o início do arquivo.

1 →  localização atual do cursor.

2 →  do final do arquivo. Este valor pode ser usado apenas no modo binário.



with open("exemplo.txt""r"as f:
    print(f.tell())
    print(f.seek(1))
    print(f.tell())
    print(f.read())
    


--------- Saida ---------------

0

1

1

ngola Brazil Portugal

Usando Python e gosto

Usando Python denovo

estamos a usar Python

e Voce estas a usar Python

[Finished in 0.4s]

--------------------------------------


0 é a localização atual do cursor.

1 é a localização do cursor após a operação de seek.

1 é a localização atual do cursor conforme relatado pela operação tell.

As próximas três linhas são o conteúdo do arquivo retornado pelo método read(). Observe a falta de 2 caracteres que foram pulados devido à operação de seek ().

Se você estiver pulando caracteres do final do arquivo



with open("exemplo.txt""rb"as f:
    print(f.tell())
    print(f.seek(-102))
    print(f.tell())
    print(f.read())
    


Além disso, observe que o modo de arquivo deve ser binário, 'rb' no exemplo acima. Se você tentar usar a operação seek em um arquivo aberto no modo de texto, ou seja, no modo 'r', obterá o erro.



with open("exemplo.txt""r"as f:
    print(f.tell())
    print(f.seek(-102))
    print(f.tell())
    print(f.read())
    


Verificando o estado de um arquivo em Python

Você pode usar a função de stats do módulo os para verificar as estatísticas de um arquivo.



import os

print(os.stat("main.py"))
    


--------- Saida ---------------

os.stat_result(st_mode=33206, st_ino=1125899907082210, st_dev=3193403517, st_nlink=1, st_uid=0, st_gid=0, st_size=38, st_atime=1624244145, st_mtime=1624244142, st_ctime=1622476866)

[Finished in 1.9s]

----------------------------------------


O objeto stat_result contém o modo, número do inode, número de links, id do usuário, id do grupo, tamanho em bytes, tempo de acesso, tempo de modificação e tempo de criação.


Copiando um arquivo em Python

Para copiar um arquivo, podemos usar a função system() do módulo os ou a função copy do módulo shutil.

A função copy não copiará os metadados do arquivo, como tempo de acesso e tempo de modificação.



import os
os.system("copy main.py  ficheiro_copia")
 



import shutil
shutil.copy("main.py""ficheiro_copia.py")   


A função copy2 irá copiar os metadados como tempo de acesso ou tempo de modificação do arquivo junto com o arquivo. Isso pode ser verificado usando a chamada de função os.stats("arquivo").


import shutil
shutil.copy2("main.py""ficheiro_copia.py"


A função copyfile não copiará as permissões do arquivo. O arquivo recém-copiado terá permissões de sistema padrão.



import shutil
shutil.copyfile("exemplo.txt""Ficheiro_copia")  


Movendo um arquivo em Python

Existem três maneiras de mover um arquivo, e vamos vê-las:


Usando o método system do módulo os.


os.system("mv local onde esta localizado o arquivo")


Usando o método rename do módulo os.


os.rename("caminho de origem""caminho de destino")


Usando o método move do método shutil.


shutil.move("caminho de origem""caminho de destino")


Excluindo um arquivo em Python

Existem duas maneiras de excluir um arquivo.


Usando o método remove do módulo os.


os.remove("o local onde esta localizado o arquivo")


Usando o método  system do módulo os.


os.system("rm o local onde esta localizado o arquivo")