Resumo : neste tutorial, você aprenderá várias maneiras de escrever arquivos de texto em Python.
DR
O seguinte ilustra como escrever uma string em um arquivo de texto:
with open('readme.txt', 'w') as f:
f.write('readme')
Linguagem de código: JavaScript ( javascript )
Etapas para gravar em arquivos de texto
Para gravar em um arquivo de texto em Python, siga estas etapas:
- Primeiro, abra o arquivo de texto para escrever (ou anexar) usando a
open()
função. - Segundo, escreva no arquivo de texto usando o método
write()
ouwritelines()
. - Terceiro, feche o arquivo usando o
close()
método.
O seguinte mostra a sintaxe básica da open()
função:
f = open(file, mode)
A open()
função aceita muitos parâmetros. Mas você se concentrará nos dois primeiros:
- O
file
parâmetro especifica o caminho para o arquivo de texto que você deseja abrir para gravação. - O
mode
parâmetro especifica o modo para o qual você deseja abrir o arquivo de texto.
Para gravar em um arquivo de texto, você usa um dos seguintes modos:
Modo | Descrição |
---|---|
'w' |
Abra um arquivo de texto para escrever. Se o arquivo existir, a função truncará todo o conteúdo assim que você abri-lo. Se o arquivo não existir, a função cria um novo arquivo. |
'a' |
Abra um arquivo de texto para anexar texto. Se o arquivo existir, a função acrescenta o conteúdo no final do arquivo. |
‘+’ | Abra um arquivo de texto para atualização (leitura e escrita). |
A open()
função retorna um objeto de arquivo que possui dois métodos úteis para gravar texto no arquivo: write()
e writelines()
.
- O
write()
método grava uma string em um arquivo de texto. - O
writelines()
método escreve uma lista de strings em um arquivo de uma só vez.
O writelines()
método aceita um objeto iterável , não apenas um list , então você pode passar uma tupla de strings, um conjunto de strings, etc., para o writelines()
método.
Para escrever uma linha em um arquivo de texto, você precisa adicionar manualmente um novo caractere de linha:
f.write('\n')
f.writelines('\n')
Linguagem de código: JavaScript ( javascript )
Escrevendo exemplos de arquivos de texto
O exemplo a seguir mostra como usar a write()
função para escrever uma lista de textos em um arquivo de texto:
lines = ['Readme', 'How to write text files in Python']
with open('readme.txt', 'w') as f:
for line in lines:
f.write(line)
f.write('\n')
Linguagem de código: JavaScript ( javascript )
Se o arquivo readme.txt não existir, a open()
função criará um novo arquivo.
O seguinte mostra como escrever uma lista de strings de texto em um arquivo de texto:
lines = ['Readme', 'How to write text files in Python']
with open('readme.txt', 'w') as f:
f.writelines(lines)
Linguagem de código: JavaScript ( javascript )
Se você tratar cada elemento da lista como uma linha, precisará concatená-lo com o caractere de nova linha assim:
lines = ['Readme', 'How to write text files in Python']
with open('readme.txt', 'w') as f:
f.write('\n'.join(lines))
Linguagem de código: JavaScript ( javascript )
Anexando arquivos de texto
Para anexar a um arquivo de texto, você precisa abrir o arquivo de texto no modo de acréscimo. O exemplo a seguir anexa novas linhas ao readme.txt
arquivo:
more_lines = ['', 'Append text files', 'The End']
with open('readme.txt', 'a') as f:
f.write('\n'.join(more_lines))
Linguagem de código: JavaScript ( javascript )
Saída:
Gravando em um arquivo de texto UTF-8
Se você escrever caracteres UTF-8 em um arquivo de texto usando o código dos exemplos anteriores, receberá um erro como este:
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-44: character maps to <undefined>
Linguagem de código: HTML, XML ( xml )
Para abrir um arquivo e escrever caracteres UTF-8 em um arquivo, você precisa passar o encoding='utf-8'
parâmetro para a open()
função.
O exemplo a seguir mostra como gravar caracteres UTF-8 em um arquivo de texto:
quote = '成功を収める人とは人が投げてきたレンガでしっかりした基盤を築くことができる人のことである。'
with open('quotes.txt', 'w', encoding='utf-8') as f:
f.write(quote)
Linguagem de código: JavaScript ( javascript )
Resumo
- Use a
open()
função com o modow
oua
para abrir um arquivo de texto para anexar. - Sempre feche o arquivo após concluir a escrita usando o
close()
método ou use awith
instrução ao abrir o arquivo. - Use
write()
ewritelines()
métodos para gravar em um arquivo de texto. - Passe o
encoding='utf-8'
para aopen()
função para gravar caracteres UTF-8 em um arquivo.