Manipulação de arquivos em Python – Como criar, ler e gravar em um arquivo


Neste tutorial, você aprenderá como abrir um arquivo, gravar no arquivo e fechá-lo. Você também aprenderá a ler o arquivo usando Python.

No final deste tutorial, você deve saber o básico de como usar arquivos em Python.

Tratamento de arquivos em Python

A manipulação de arquivos é uma atividade importante em todos os aplicativos Web. Os tipos de atividades que você pode executar no arquivo aberto são controlados pelos modos de acesso. Estes descrevem como o arquivo será usado depois de aberto.

Esses modos também especificam onde o identificador de arquivo deve estar localizado dentro do arquivo. Semelhante a um ponteiro, um identificador de arquivo indica onde os dados devem ser lidos ou colocados no arquivo.

Em Python, existem seis métodos ou modos de acesso, que são:

  1. Somente leitura ('r'): Este modo abre os arquivos de texto para somente leitura. O início do arquivo é onde o identificador está localizado. Ele gera o erro de E/S se o arquivo não existir. Este é o modo padrão para abrir arquivos também.
  2. Leitura e Escrita ('r+'): Este método abre o ficheiro para leitura e escrita. O início do arquivo é onde o identificador está localizado. Se o arquivo não existir, um erro de E/S será gerado.
  3. Somente gravação ('w'): Este modo abre o arquivo somente para gravação. Os dados em arquivos existentes são modificados e substituídos. O início do arquivo é onde o identificador está localizado. Se o arquivo ainda não existir na pasta, um novo será criado.
  4. Escrever e Ler ('w+'): Este modo abre o ficheiro tanto para leitura como para escrita. O texto é substituído e excluído de um arquivo existente. O início do arquivo é onde o identificador está localizado.
  5. Append Only ('a'): Este modo permite que o arquivo seja aberto para gravação. Se o arquivo ainda não existir, um novo será criado. O identificador é definido no final do arquivo. Os dados recém-gravados serão adicionados no final, seguindo os dados escritos anteriormente.
  6. Acrescentar e ler ('a+'): Usando este método, você pode ler e gravar no arquivo. Se o arquivo ainda não existir, um será criado. O identificador é definido no final do arquivo. O texto recém-escrito será adicionado no final, seguindo os dados escritos anteriormente.

Abaixo está o código necessário para criar, gravar e ler arquivos de texto usando os métodos de manipulação de arquivos Python ou modos de acesso.

Como criar arquivos em Python

Em Python, você usa a função open() com uma das seguintes opções – "x" ou "w" – para criar um novo arquivo:

  • "x" – Criar: este comando criará um novo arquivo se e somente se não houver nenhum arquivo já existente com esse nome ou então ele retornará um erro.

Exemplo de criação de um arquivo em Python usando o comando "x":

#creating a text file with the command function "x"

f = open("myfile.txt", "x")

Criámos agora um novo ficheiro de texto vazio! Mas se você repetir o código acima – por exemplo, se você tentar criar um novo arquivo com o mesmo nome que você usou acima (se você quiser reutilizar o nome do arquivo acima), você receberá um erro notificando que o arquivo já existe. Ficará parecido com a imagem abaixo:

  • "w" – Write: este comando criará um novo arquivo de texto independentemente de haver ou não um arquivo na memória com o novo nome especificado. Ele não retorna um erro se encontrar um arquivo existente com o mesmo nome – em vez disso, substituirá o arquivo existente.

Exemplo de como criar um arquivo com o comando "w":

#creating a text file with the command function "w"

f = open("myfile.txt", "w")

#This "w" command can also be used create a new file but unlike the the "x" command the "w" command will overwrite any existing file found with the same file name.

Com o código acima, quer o arquivo exista ou não exista na memória, você ainda pode ir em frente e usar esse código. Apenas tenha em mente que ele substituirá o arquivo se encontrar um arquivo existente com o mesmo nome.

Como gravar em um arquivo em Python

Existem dois métodos de escrita em um arquivo em Python, que são:

O método write():

Esta função insere a cadeia de caracteres no arquivo de texto em uma única linha.

Com base no arquivo que criamos acima, a linha de código abaixo irá inserir a string no arquivo de texto criado, que é "myfile.txt. ”

file.write("Hello There\n")

O método writelines():

Esta função insere várias cadeias de caracteres ao mesmo tempo. Uma lista de elementos de cadeia de caracteres é criada e cada cadeia de caracteres é adicionada ao arquivo de texto.

Usando o arquivo criado anteriormente acima, a linha de código abaixo inserirá a cadeia de caracteres no arquivo de texto criado, que é "myfile.txt. ”

f.writelines(["Hello World ", "You are welcome to Fcc\n"])

Exemplo :

#This program shows how to write data in a text file.

file = open("myfile.txt","w")
L = ["This is Lagos \n","This is Python \n","This is Fcc \n"]

# i assigned ["This is Lagos \n","This is Python \n","This is Fcc \n"] to #variable L, you can use any letter or word of your choice.
# Variable are containers in which values can be stored.
# The \n is placed to indicate the end of the line.

file.write("Hello There \n")
file.writelines(L)
file.close()

# Use the close() to change file access modes

Como ler a partir de um arquivo de texto em Python

Existem três métodos de leitura de dados de um arquivo de texto em Python. São eles:

O método read():

Esta função retorna os bytes lidos como uma cadeia de caracteres. Se nenhum n for especificado, ele lê o arquivo inteiro.

Exemplo :

f = open("myfiles.txt", "r")
#('r’) opens the text files for reading only
print(f.read())
#The "f.read" prints out the data in the text file in the shell when run.

O método readline():

Esta função lê uma linha de um arquivo e a retorna como uma cadeia de caracteres. Ele lê no máximo n bytes para o especificado n. Mas mesmo que n seja maior do que o comprimento da linha, ele não lê mais de uma linha.

f = open("myfiles.txt", "r")
print(f.readline())

O método readlines():

Esta função lê todas as linhas e as retorna como elementos de cadeia de caracteres em uma lista, um para cada linha.

Você pode ler as duas primeiras linhas chamando readline() duas vezes, lendo as duas primeiras linhas do arquivo:

f = open("myfiles.txt", "r")
print(f.readline())
print(f.readline())

Como fechar um arquivo de texto em Python

É uma boa prática sempre fechar o arquivo quando terminar de usá-lo.

Exemplo de fechamento de um arquivo de texto:

Esta função fecha o arquivo de texto quando você termina de modificá-lo:

f = open("myfiles.txt", "r")
print(f.readline())
f.close()

A função close() no final do código diz ao Python que bem, eu terminei com esta seção de criar ou ler – é como dizer End.

Exemplo :

O programa abaixo mostra mais exemplos de maneiras de ler e gravar dados em um arquivo de texto. Cada linha de código tem comentários para ajudá-lo a entender o que está acontecendo:

# Program to show various ways to read and
# write data in a text file.

file = open("myfile.txt","w")
L = ["This is Lagos \n","This is Python \n","This is Fcc \n"]

#i assigned ["This is Lagos \n","This is Python \n","This is Fcc \n"]
#to variable L
  
#The \n is placed to indicate End of Line

file.write("Hello There \n")
file.writelines(L)
file.close()
# use the close() to change file access modes



file = open("myfile.txt","r+") 
print("Output of the Read function is ")
print(file.read())
print()
  
# The seek(n) takes the file handle to the nth
# byte from the start.
file.seek(0) 
  
print( "The output of the Readline function is ")
print(file.readline()) 
print()
  
file.seek(0)
  
# To show difference between read and readline

print("Output of Read(12) function is ") 
print(file.read(12))
print()

file.seek(0)
  
print("Output of Readline(8) function is ") 
print(file.readline(8))
  
file.seek(0)
# readlines function
print("Output of Readlines function is ") 
print(file.readlines()) 
print()
file.close()

Esta é a saída do código acima quando executado no shell. Eu atribuí "This is Lagos", "This is Python" e "This is Fcc" a "L" e,  em seguida, pedi que imprimisse usando a função ''file.read''.  

O código acima mostra que a função "readline()" está retornando a letra com base no número especificado para ela, enquanto a função "readlines()" está retornando cada string atribuída a "L", incluindo o \n. Ou seja, a função "readlines()" imprimirá todos os dados no arquivo.

Conclusão

Espero que, depois de passar por este tutorial, você deve entender o que é manipulação de arquivos em Python. Também aprendemos os modos/métodos necessários para criar, escrever, ler e fechar() um arquivo de texto usando alguns exemplos básicos do Python.

Obrigado pela leitura!