HOWTO · Python
Substituir um arquivo em Python
Este tutorial explica como substituir um arquivo em Python
Nesta página
Este tutorial demonstrará vários métodos para substituir um arquivo em Python. Veremos métodos para escrever um novo texto excluindo o texto já salvo e como podemos primeiro ler os dados do arquivo, aplicar algumas ações e alterações nele e, em seguida, sobrescrevê-lo nos dados antigos.
Sobrescrever um arquivo em Python usando a função open()
A função open(file, mode) leva file (um objeto semelhante a um caminho) como entrada e retorna um objeto de arquivo como saída. A entrada file pode ser um objeto string ou bytes e contém o caminho do arquivo. O mode é o modo em que queremos abrir o arquivo; pode ser r para o modo de leitura, w para a escrita ou a para o modo anexo, etc.
Para sobrescrever um arquivo e gravar alguns novos dados no arquivo, podemos abrir o arquivo no modo w, o que excluirá os dados antigos do arquivo.
Código de exemplo:
with open("myFolder/myfile.txt", "w") as myfile:
myfile.write(newData)
Se quisermos primeiro ler os dados salvos no arquivo e depois sobrescrever o arquivo, podemos primeiro abrir o arquivo no modo de leitura, ler os dados e então sobrescrever o arquivo.
Código de exemplo:
with open("myFolder/myfile.txt", "r") as myfile:
data = myfilef.read()
with open("myFolder/myfile.txt", "w") as myfile:
myfile.write(newData)
Sobrescrever um arquivo em Python usando o método file.truncate()
Visto que queremos ler os dados do arquivo primeiro e depois sobrescrevê-los, podemos fazer isso usando o método file.truncate().
Primeiro, abra o arquivo no modo de leitura usando o método open(), leia os dados do arquivo e procure o início do arquivo usando o método file.seek(), escreva os novos dados e trunque os dados antigos usando o método file.truncate().
O código de exemplo a seguir demonstra como substituir o arquivo usando os métodos file.seek() e file.truncate().
with open("myFolder/myfile.txt", "r+") as myfile:
data = myfile.read()
myfile.seek(0)
myfile.write("newData")
myfile.truncate()