Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Python

Manipulação de arquivos com Python

by
Length:ShortLanguages:

Portuguese (Português) translation by Jonathan Ramos (you can also view the original English article)

Se você olhar para a área de trabalho do seu computador, o que você vai encontrar? Arquivos espalhados por toda parte, certo? Eu sei que geralmente temos este mau hábito de ter uma área de trabalho desorganizada, mas o fato é que parece que lidamos com muitos arquivos.

Falando sobre Python, certamente é possível trabalhar com arquivos usando Python, e é isto que eu vou mostrar neste tutorial.

Abrindo um arquivo

O primeiro processo natural que temos que realizar para fazer qualquer operação sobre algum arquivo é abri-lo. Faça o download do arquivo Text.txt, que é o arquivo que vamos usar para conduzir nossas experiências.

Para abrir um arquivo usando Python, usaremos a função open(). Como mencionado na documentação:

open() retorna um objeto de arquivo e é mais comumente usado com dois argumentos: open (filename, mode)

Antes de tomar um exemplo, como mencionado acima, a função open() levará dois argumentos: nome do arquivo e o modo. Esta forma de usar é muito semelhante ao stdio's (do C, por exemplo) fopen(). Filename é simplesmente o nome do arquivo que deseja abrir. Você também pode fornecer o caminho para o arquivo, se ele não estiver no diretório atual. E mode é uma string que indica como o arquivo vai ser aberto. Exemplos de modos diferentes são mostrados na tabela a seguir:

Descrição dos modos
r Abre o arquivo de texto para leitura. O stream (fluxo de entrada ou saída) é posicionado no início do arquivo.
r+ Abre para leitura e escrita. O fluxo é posicionado no início do arquivo.
w Trunca o arquivo para zero ou cria um arquivo de texto para escrita. O stream é posicionado no início do arquivo.
w+ Abre para leitura e escrita. O arquivo é criado se ele não existir, caso contrário será sobreescrito. O stream é posicionado no início do arquivo.
a Abre para escrita. O arquivo é criado caso não exista. O stream é posicionado no final do arquivo. Gravações subsequentes do arquivo sempre vão acabar no fim do arquivo atual.
a+ Abre para leitura e escrita. O arquivo é criado se ele não existir. O stream é posicionado no final do arquivo. Gravações subsequentes no arquivo sempre vão acabar no fim do arquivo atual.

Você também pode ver outros modos na documentação do Python.

Vamos seguir, agora abra o arquivo Text.txt. Isso pode ser feito simplesmente com uma única linha da seguinte maneira:

text_file = open('Text.txt')

Como você pode ver aqui, nós não especificamos o modo. Para saber o modo padrão usado com open(), digite print text_file, nesse caso, você receberá o seguinte:

<open file 'Text.txt' mode 'r' at 0x10728c810>

Então, como você pode ver, o modo padrão é r. Neste ponto você pode não ter percebido, mas acabamos de abrir um arquivo nesta etapa.

Lendo um arquivo

O arquivo é como uma caixa secreta. Nós Abrimos a caixa no passo anterior, e agora nós queremos ver o que há dentro. Ler um arquivo simples em Python pode ser feito usando o método read(), dessa forma:

text_file.read()

Para ver a saída da instrução anterior, digite print text_file.read(). Neste caso, o conteúdo (secreto) será revelado!

I'm enjoying learning about "file handling" in Python

Vá em frente e digite print text_file.read() novamente, o que você vê? A saída foi uma string vazia. Isto é porque você já leu o arquivo inteiro, ao invés de ler uma linha por vez, ou seja, readline().

Escrevendo em um arquivo

Talvez você queira adicionar (escrever) outra frase ou parágrafo no arquivo que já lemos. Digamos que queria adicionar a seguinte frase: and I'm looking for more. Isso pode ser feito em Python usando o método write(), conforme a seguir:

text_file.write('and I\'m looking for more')

Oops, temos um erro aqui:

Você já entendeu? Lembra quando abrimos o arquivo na primeira seção da seguinte maneira: open('Text.txt')? Como não especificamos um modo naquele exemplo , o modo (padrão) foi definido como r. Isso nos permitirá apenas ler o arquivo, e neste exemplo estamos tentando gravar no arquivo. Então, vamos abrir o arquivo novamente, mas com o modo de gravação w:

text_file = open('Text.txt', 'w')

Agora tente escrever a frase novamente, usando o código acima. Qual foi o resultado? Vamos usar open() e print read(), conforme foi mostrado nas duas primeiras seções para ver o que está dentro do arquivo:

A saída desse script é:

and I'm looking for more

Você esperava ver a nova frase acompanhada da frase original I'm enjoying learning about "file handling" in Python, não é? Então ela desapareceu? O modo w parece sobreescrever o conteúdo do arquivo que está gravando. Se você está interessado em manter o texto original do documento, você pode usar o modo a (acrescentar):

Neste caso, você deve obter o conteúdo esperado em Text. txt:

I'm enjoying learning about "file handling" in Python and I'm looking for more.(Estou aprendendo sobre "manipulação de dados" com Python e quero saber mais)

Vamos colocar tudo o que aprendemos até agora junto:

Temos algumas coisas novas aqui. Deixe-me esclarecê-las rapidamente. with...as nos permite abrir o arquivo, processá-lo e certificar-se de que está fechado. seek(), por outro lado, nos permite mover o ponteiro (ou seja, o cursor) para alguma outra parte do arquivo. seek(0), por exemplo, significa que o ponto de referência será o início do arquivo.

Vá em frente e execute o script e veja o que teremos de saída.

Fechando um arquivo

Ter o hábito de fechar um arquivo após a leitura ou escrita permitirá que você libere memória. Sim, o Python fecha automaticamente os arquivos depois que o script termina, mas se você não fizer isso de antemão, todos os arquivos abertos ocuparão espaço que o Python poderia usar. Fechar um arquivo pode ser facilmente realizado usando o método close().

Vamos usar este exemplo:

O que vai acontecer se nós fecharmos o arquivo após read()? Ou seja, text_file.close(). O Python, dará a seguinte exceção:

Assim, concluímos que não podemos ler ou gravar em um arquivo fechado.

Conclusão

Isso é tudo para este tutorial. Já vimos como é fácil trabalhar com arquivos no Python através de algumas operações básicas que demonstramos.

Que outras operações você geralmente executa em arquivos usando Python?

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.