python file handling tutorial
Uma análise intensiva das operações de manuseio de arquivos Python com exemplos práticos:
Na série de Tutorial Python para iniciantes , aprendemos mais sobre Funções de string Python em nosso último tutorial.
Python nos fornece um recurso importante para ler dados do arquivo e gravar dados em um arquivo.
Principalmente, em linguagens de programação, todos os valores ou dados são armazenados em algumas variáveis que são de natureza volátil.
Porque os dados serão armazenados nessas variáveis apenas durante o tempo de execução e serão perdidos quando a execução do programa for concluída. Portanto, é melhor salvar esses dados permanentemente usando arquivos.
O que você aprenderá:
- Como o Python lida com arquivos?
- Tipos de arquivo em Python
- Operações de manipulação de arquivos Python
- Codificação em arquivos
- Gravando e lendo dados de um arquivo binário
- Atributos de E / S de arquivo
- Métodos de arquivo Python
- Resumo
- Leitura recomendada
Como Python lida com arquivos ?
Se você estiver trabalhando em um grande aplicativo de software em que processa um grande número de dados, não podemos esperar que esses dados sejam armazenados em uma variável, pois as variáveis são de natureza volátil.
Portanto, quando você estiver prestes a lidar com tais situações, a função dos arquivos entrará em cena.
Como os arquivos são de natureza não volátil, os dados serão armazenados permanentemente em um dispositivo secundário como o disco rígido e, usando o python, lidaremos com esses arquivos em nossos aplicativos.
Você está pensando em como o python lidará com arquivos?
Vamos dar uma Exemplo de como as pessoas normais irão lidar com os arquivos. Se quisermos ler os dados de um arquivo ou gravar os dados em um arquivo, então, primeiro de tudo, vamos abrir o arquivo ou criar um novo arquivo se o arquivo não existir e, em seguida, realizar as operações normais de leitura / gravação , Salve o arquivo e feche-o.
Da mesma forma, fazemos as mesmas operações em python usando alguns métodos ou funções embutidos.
Tipos de arquivo em Python
Existem dois tipos de arquivos em Python e cada um deles é explicado abaixo em detalhes com exemplos para sua fácil compreensão.
Eles estão:
- Arquivo binário
- Arquivo de texto
Arquivos binários em Python
A maioria dos arquivos que vemos em nosso sistema de computador são chamados de arquivos binários.
Exemplo:
- Arquivos de documentos: .pdf, .doc, .xls etc.
- Arquivos de imagem: .png, .jpg, .gif, .bmp etc.
- Arquivos de vídeo: .mp4, .3gp, .mkv, .avi etc.
- Arquivos de áudio: .mp3, .wav, .mka, .aac etc.
- Arquivos de banco de dados: .mdb, .accde, .frm, .sqlite etc.
- Arquivos de arquivo: .zip, .rar, .iso, .7z etc.
- Arquivos executáveis: .exe, .dll, .class etc.
Leitura Recomendada = >> Como abrir arquivo .7z
Todos os arquivos binários seguem um formato específico. Podemos abrir alguns arquivos binários no editor de texto normal, mas não podemos ler o conteúdo presente dentro do arquivo. Isso porque todos os arquivos binários serão codificados no formato binário, que pode ser entendido apenas por um computador ou máquina.
Para lidar com esses arquivos binários, precisamos de um tipo específico de software para abri-lo.
Por exemplo, Você precisa do software Microsoft Word para abrir arquivos binários .doc. Da mesma forma, você precisa de um software leitor de PDF para abrir arquivos binários .pdf e de um software editor de fotos para ler os arquivos de imagem e assim por diante.
Arquivos de texto em Python
Os arquivos de texto não têm nenhuma codificação específica e podem ser abertos no próprio editor de texto normal.
Exemplo:
- Padrões da web: html, XML, CSS, JSON etc.
- Código fonte: c, app, js, py, java etc.
- Documentos: txt, tex, RTF etc.
- Dados tabulares: csv, tsv etc.
- Configuração: ini, cfg, reg etc.
Neste tutorial, veremos como lidar com arquivos de texto e binários com alguns exemplos clássicos.
Operações de manipulação de arquivos Python
Mais importante ainda, existem 4 tipos de operações que podem ser manipuladas pelo Python em arquivos:
- Abrir
- Leitura
- Escreva
- Fechar
Outras operações incluem:
- Renomear
- Excluir
Python cria e abre um arquivo
Python tem uma função embutida chamada open () para abrir um arquivo.
É necessário no mínimo um argumento, conforme mencionado na sintaxe abaixo. O método aberto retorna um objeto de arquivo que é usado para acessar os métodos de gravação, leitura e outros métodos embutidos.
Sintaxe:
file_object = open(file_name, mode)Aqui, file_name é o nome do arquivo ou a localização do arquivo que você deseja abrir, e file_name deve ter a extensão do arquivo incluída também. O que significa em test.txt - o termo teste é o nome do arquivo e .txt é a extensão do arquivo.
O modo na sintaxe da função aberta dirá ao Python qual operação você deseja fazer em um arquivo.
- ‘R’ - Modo de leitura: O modo de leitura é usado apenas para ler dados do arquivo.
- ‘W’ - Modo de gravação: Este modo é usado quando você deseja gravar dados no arquivo ou modificá-lo. Lembre-se de que o modo de gravação substitui os dados presentes no arquivo.
- ‘A’ - Modo Anexo: O modo Anexar é usado para anexar dados ao arquivo. Lembre-se de que os dados serão acrescentados no final do ponteiro do arquivo.
- ‘R +’ - Modo de leitura ou gravação: Este modo é usado quando queremos escrever ou ler os dados do mesmo arquivo.
- ‘A +’ - Modo Anexar ou Ler: Este modo é usado quando queremos ler dados do arquivo ou anexar os dados no mesmo arquivo.
Observação: Os modos mencionados acima são para abrir, ler ou escrever somente arquivos de texto.
Ao usar arquivos binários, temos que usar os mesmos modos com a letra 'B' no final. Para que o Python possa entender que estamos interagindo com arquivos binários.
- 'Wb' - Abra um arquivo para o modo somente gravação no formato binário.
- ‘Rb’ - Abra um arquivo para o modo somente leitura no formato binário.
- 'A partir de' - Abra um arquivo para anexar apenas o modo no formato binário.
- ‘Rb +’ - Abra um arquivo para o modo somente leitura e gravação no formato binário.
- ‘De +’ - Abra um arquivo para anexar e modo somente leitura no formato binário.
Exemplo 1:
fo = open(“C:/Documents/Python/test.txt”, “r+”)No exemplo acima, estamos abrindo o arquivo chamado ‘test.txt’ presente no local ‘C: / Documents / Python /’ e estamos abrindo o mesmo arquivo em modo de leitura e gravação, o que nos dá mais flexibilidade.
Exemplo 2:
fo = open(“C:/Documents/Python/img.bmp”, “rb+”)No exemplo acima, estamos abrindo o arquivo chamado ‘img.bmp’ presente no local “C: / Documents / Python /”, mas aqui estamos tentando abrir o arquivo binário.
Python Read From File
Para ler um arquivo em python, devemos abrir o arquivo no modo de leitura.
Existem três maneiras de ler os arquivos em python.
- ler ((n))
- readline ((n))
- readlines ()
Aqui, n é o número de bytes a serem lidos.
Primeiro, vamos criar um arquivo de texto de amostra, conforme mostrado abaixo.

Agora vamos observar o que cada método de leitura faz:
Exemplo 1:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read(5))Resultado:
Olá
Aqui, estamos abrindo o arquivo test.txt em modo somente leitura e lendo apenas os primeiros 5 caracteres do arquivo usando o método my_file.read (5).

Resultado:

Exemplo 2:
lançando char para int c ++
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read())Resultado:
Olá Mundo
Ola python
Bom Dia
Aqui, não fornecemos nenhum argumento dentro da função read (). Portanto, ele irá ler todo o conteúdo presente no arquivo.

Resultado:

Exemplo 3:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline(2))Resultado:
Ele
Esta função retorna os primeiros 2 caracteres da próxima linha.

Resultado:

Exemplo 4:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline())Resultado:
Olá Mundo
Usando esta função, podemos ler o conteúdo do arquivo linha por linha.

Resultado:

Exemplo 5:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readlines())Resultado:
(‘Hello World n’, ‘Hello Python n’, ‘Good Morning’)
Aqui, estamos lendo todas as linhas presentes no arquivo de texto, incluindo os caracteres de nova linha.

Resultado:

Agora vamos ver mais alguns exemplos práticos de leitura de um arquivo.
Lendo uma linha específica de um arquivo
line_number = 4 fo = open(“C:/Documents/Python/test.txt”, ’r’) currentline = 1 for line in fo: if(currentline == line_number): print(line) break currentline = currentline +1Resultado:
Como você está
No exemplo acima, estamos tentando ler apenas os 4ºlinha do arquivo ‘test.txt’ usando um “For loop” .

Resultado:

Lendo todo o arquivo de uma vez
filename = “C:/Documents/Python/test.txt” filehandle = open(filename, ‘r’) filedata = filehandle.read() print(filedata)Resultado:
Olá Mundo
Ola python
Bom Dia
Como você está

Resultado:

Python Write to File
Para gravar dados em um arquivo, devemos abrir o arquivo no modo de gravação.
Precisamos ter muito cuidado ao gravar dados no arquivo, pois isso sobrescreve o conteúdo presente dentro do arquivo que você está gravando e todos os dados anteriores serão apagados.
Temos dois métodos para gravar dados em um arquivo, conforme mostrado abaixo.
- escrever (string)
- writelines (lista)
Exemplo 1:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World”)O código acima grava a string ‘Hello World’ no arquivo ‘test.txt’.
Antes de gravar dados em um arquivo test.txt:


Resultado:

Exemplo 2:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World
”) my_file.write(“Hello Python”)A primeira linha será ‘Hello World’ e como mencionamos o caractere n, o cursor se moverá para a próxima linha do arquivo e escreverá ‘Hello Python’.
melhor aplicativo para baixar músicas mp3
Lembre-se de que se não mencionarmos n o caractere, os dados serão escritos continuamente no arquivo de texto como ‘Hello WorldHelloPython’

Resultado:

Exemplo 3:
fruits = (“Apple
”, “Orange
”, “Grapes
”, “Watermelon”) my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.writelines(fruits)O código acima escreve um lista de dados no arquivo ‘test.txt’ simultaneamente.

Resultado:

Python Append to File
Para anexar dados em um arquivo, devemos abrir o arquivo no modo ‘a +’ para que tenhamos acesso aos modos de anexação e gravação.
Exemplo 1:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“Strawberry”)O código acima anexa a string ‘Apple’ no fim do arquivo ‘test.txt’.

Resultado:

Exemplo 2:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.write (“
Guava”)O código acima anexa a string ‘Apple’ no final do arquivo ‘test.txt’ em uma nova linha .

Resultado:

Exemplo 3:
fruits = (“
Banana”, “
Avocado”, “
Figs”, “
Mango”) my_file = open(“C:/Documents/Python/test.txt”, “a+”) my_file.writelines(fruits)O código acima anexa uma lista de dados em um arquivo ‘test.txt’.

Resultado:

Exemplo 4:
text=('
Hello','
Hi','
Python') my_file=open('C:/Documents/Python/test.txt',mode='a+') my_file.writelines(text) print('where the file cursor is:',my_file.tell()) my_file.seek(0) for line in my_file: print(line)No código acima, estamos anexando a lista de dados ao arquivo ‘test.txt’. Aqui, você pode observar que usamos o método tell () que imprime onde o cursor está atualmente.
busca (deslocamento): O deslocamento leva três tipos de argumentos, a saber, 0,1 e 2.
Quando o deslocamento é 0: A referência será apontada no início do arquivo.
Quando o deslocamento é 1: A referência será apontada para a posição atual do cursor.
Quando o deslocamento é 2: A referência será apontada no final do arquivo.

Resultado:

Python Fechar Arquivo
Para fechar um arquivo, devemos primeiro abrir o arquivo. Em python, temos um método embutido chamado close () para fechar o arquivo que é aberto.
Sempre que você abre um arquivo, é importante fechá-lo, principalmente, com o método write. Porque se não chamarmos a função close após o método de gravação, todos os dados que gravamos em um arquivo não serão salvos no arquivo.
Exemplo 1:
my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read()) my_file.close()Exemplo 2:
my_file = open(“C:/Documents/Python/test.txt”, “w”) my_file.write(“Hello World”) my_file.close()Renomear ou excluir arquivo Python
Python nos fornece um módulo “os” que possui alguns métodos embutidos que nos ajudam a realizar as operações de arquivo, como renomear e deletar o arquivo.
Para usar este módulo, em primeiro lugar, precisamos importar o módulo “os” em nosso programa e então chamar os métodos relacionados.
método rename ():
Este método rename () aceita dois argumentos, ou seja, o nome do arquivo atual e o novo nome do arquivo.
Sintaxe:
conversor de youtube para wav online grátis
os.rename(current_file_name, new_file_name)Exemplo 1:
import os os.rename(“test.txt”, “test1.txt”)Aqui, ‘test.txt’ é o nome do arquivo atual e ‘test1.txt’ é o novo nome do arquivo.
Você pode especificar o local, assim como mostrado no exemplo abaixo.
Exemplo 2:
import os os.rename(“C:/Documents/Python/test.txt”, “C:/Documents/Python/test1.txt”) 
Antes de renomear o arquivo:

Depois de executar o programa acima

método remove ():
Usamos o método remove () para excluir o arquivo, fornecendo o nome do arquivo ou a localização do arquivo que você deseja excluir.
Sintaxe:
os.remove(file_name)Exemplo 1:
import os os.remove(“test.txt”)Aqui, ‘test.txt’ é o arquivo que você deseja remover.
Da mesma forma, podemos passar a localização do arquivo também para os argumentos, conforme mostrado no exemplo abaixo
Exemplo 2:
import os os.remove(“C:/Documents/Python/test.txt”)Codificação em arquivos
A codificação de arquivo representa a conversão de caracteres em um formato específico que apenas uma máquina pode entender.
Máquinas diferentes têm formatos de codificação diferentes, conforme mostrado abaixo.
- O sistema operacional Microsoft Windows usa ‘Cp1252’ formato de codificação por padrão.
- Linux ou Unix OS usa ‘Utf-8’ formato de codificação por padrão.
- O Mac OS da Apple usa ‘Utf-8’ ou ‘utf-16’ formato de codificação por padrão.
Vamos ver a operação de codificação com alguns exemplos.
Exemplo 1:
my_file = open(“C:/Documents/Python/test.txt”, mode=”r”) print(“Microsoft Windows encoding format by default is:”, my_file.encoding) my_file.close()Resultado:
O formato de codificação do Microsoft Windows por padrão é cp1252.
Aqui, eu executei meu programa na máquina Windows, então ele imprimiu a codificação padrão como ‘cp1252’.

Resultado:

Também podemos alterar o formato de codificação de um arquivo, passando-o como argumentos para a função open.
Exemplo 2:
my_file = open(“C:/Documents/Python/test.txt”, mode=”w”, encoding=”cp437”) print(“File encoding format is:”, my_file.encoding) my_file.close()Resultado:
O formato de codificação do arquivo é: cp437

Resultado:

Exemplo 3:
my_file = open(“C:/Documents/Python/test.txt”, mode=”w”, encoding=”utf-16”) print(“File encoding format is:”, my_file.encoding) my_file.close()Resultado:
O formato de codificação do arquivo é: utf-16

Resultado:

Gravando e lendo dados de um arquivo binário
Os arquivos binários armazenam dados no formato binário (0's e 1's) que é compreensível pela máquina. Portanto, quando abrimos o arquivo binário em nossa máquina, ele decodifica os dados e os exibe em um formato legível por humanos.
Exemplo:
# Vamos criar um arquivo binário.
my_file = open(“C:/Documents/Python/bfile.bin”, “wb+”) message = “Hello Python” file_encode = message.encode(“ASCII”) my_file.write(file_encode) my_file.seek(0) bdata = my_file.read() print(“Binary Data:”, bdata) ntext = bdata.decode(“ASCII”) print(“Normal data:”, ntext)No exemplo acima, primeiro estamos criando um arquivo binário 'Bfile.bin' com o acesso de leitura e gravação e quaisquer dados que você deseja inserir no arquivo devem ser codificados antes de chamar o método de gravação.
Além disso, estamos imprimindo os dados sem decodificá-los, para que possamos observar como os dados aparecem exatamente dentro do arquivo quando são codificados e também estamos imprimindo os mesmos dados decodificando-os para que possam ser lidos por humanos.
Resultado:
Dados binários: b’Hello Python ’
Dados normais: Hello Python

Resultado:

Atributos de E / S de arquivo
| Atributo | Descrição |
|---|---|
| readlines () | Lê e retorna todas as linhas do arquivo |
| Nome | Retorna o nome do arquivo |
| Modo | Modo de retorno do arquivo |
| Codificação | Retorna o formato de codificação do arquivo |
| Fechadas | Retorna verdadeiro se o arquivo fechado, senão retorna falso |
Exemplo:
my_file = open(“C:/Documents/Python/test.txt”, “a+”) print(“What is the file name? ”, my_file.name) print(“What is the file mode? ”, my_file.mode) print(“What is the encoding format? ”, my_file.encoding) print(“Is File closed? ”, my_file.closed) my_file.close() print(“Is File closed? ”, my_file.closed)Resultado:
Qual é o nome do arquivo? C: /Documents/Python/test.txt
Qual é o modo de arquivo? r
Qual é o formato de codificação? cp1252
O arquivo está fechado? Falso
O arquivo está fechado? Verdade

Resultado:

Vamos experimentar alguns outros métodos do arquivo.
Exemplo:
my_file = open(“C:/Documents/Python/test.txt”, “w+”) my_file.write(“Hello Python
Hello World
Good Morning”) my_file.seek(0) print(my_file.read()) print(“Is file readable: ?”, my_file.readable()) print(“Is file writeable: ?”, my_file.writable()) print(“File no:”, my_file.fileno()) my_file.close()Resultado:
Ola python
Olá Mundo
Bom Dia
O arquivo é legível :? Verdade
O arquivo é gravável :? Verdade
Arquivo nº: 3

Resultado:

Métodos de arquivo Python
| Função | Explicação |
|---|---|
| abrir() | Para abrir um arquivo |
| fechar() | Fechar um arquivo aberto |
| sem Arquivo() | Retorna um número inteiro do arquivo |
| ler (n) | Lê 'n' caracteres do arquivo até o final do arquivo |
| legível() | Retorna verdadeiro se o arquivo for legível |
| Leia a linha() | Leia e retorne uma linha do arquivo |
| procurar (deslocar) | Muda a posição do cursor em bytes conforme especificado pelo deslocamento |
| procurável () | Retorna verdadeiro se o arquivo suportar acesso aleatório |
| contar() | Retorna a localização do arquivo atual |
| gravável () | Retorna verdadeiro se o arquivo for gravável |
| Escreva() | Grava uma string de dados no arquivo |
| writelines () | Grava uma lista de dados no arquivo |
Vamos ver o que discutimos até agora em um programa final.
Exemplo:
my_file = open('C:/Documents/Python/test.txt', mode='w+') print('What is the file name? ', my_file.name) print('What is the mode of the file? ', my_file.mode) print('What is the encoding format?', my_file.encoding) text = ('Hello Python
', 'Good Morning
', 'Good Bye') my_file.writelines(text) print('Size of the file is:', my_file.__sizeof__()) print('Cursor position is at byte:', my_file.tell()) my_file.seek(0) print('Content of the file is:', my_file.read()) my_file.close() file = open('C:/Documents/Python/test.txt', mode='r') line_number = 3 current_line = 1 data = 0 for line in file: if current_line == line_number: data = line print('Data present at current line is:', data) break current_line = current_line + 1 bin_file = open('C:/Documents/Python/bfile.exe', mode='wb+') message_content = data.encode('utf-32') bin_file.write(message_content) bin_file.seek(0) bdata = bin_file.read() print('Binary Data is:', bdata) ndata = bdata.decode('utf-32') print('Normal Data is:', ndata) file.close() bin_file.close()Resultado:
Qual é o nome do arquivo? C: /Documents/Python/test.txt
Qual é o modo do arquivo? w +
Qual é o formato de codificação? cp1252
O tamanho do arquivo é: 192
A posição do cursor está no byte: 36
O conteúdo do arquivo é: Hello Python
Bom Dia
Tchau
Os dados presentes na linha atual são: Adeus
Os dados binários são: b ' xff xfe x00 x00G x00 x00 x00o x00 x00 x00o x00 x00 x00d x00 x00 x00 x00 x00 x00B x00 x00 x00y x00 x00 x00e x00 x00 x00 ′
Os dados normais são: Adeus

Resultado:

Resumo
Listados abaixo estão algumas dicas que podem ser resumidas no tutorial acima:
- Normalmente usamos um arquivo para armazenar dados permanentemente no armazenamento secundário, pois é de natureza não volátil, para que os dados possam ser usados no futuro.
- Às vezes, em alguns aplicativos, podemos querer ler os dados de um arquivo de texto ou arquivo binário, para que possamos fazer isso usando as funções integradas em Python, como abrir, ler, escrever métodos etc.
- Você deve ter muito cuidado ao usar o método de gravação porque todos os dados que você gravar no arquivo serão sobrescritos e os dados antigos serão perdidos.
- Para evitar a substituição de dados, é melhor abrir um arquivo no modo de gravação e anexar para que os dados sejam anexados no final do arquivo.
- Lembre-se de que quando você abre um arquivo no modo binário, ele não aceita o parâmetro de codificação.
- Você pode renomear e excluir um arquivo usando os métodos renomear e remover do módulo / pacote “os”.
Esperamos que você tenha gostado deste tutorial informativo sobre Manipulação de arquivos Python. Nosso próximo tutorial explicará mais sobre a função principal do Python.
PREV Tutorial | PRÓXIMO Tutorial
Leitura recomendada
- Entrada-saída e arquivos em Python (Python abrir, ler e gravar em arquivo)
- Tutorial Python DateTime com exemplos
- Tutorial de Python para iniciantes (treinamento prático e gratuito em Python)
- Tutoriais detalhados do Eclipse para iniciantes
- Funções de string Python
- Tutorial de divisão de string em Python
- Variáveis Python
- Objetos de arquivo VBScript: CopyFile, DeleteFile, OpenTextFile, Read and Write Text File