• Home »
  • Artigos »
  • Curso de programação em Python lição 14 – Leitura e escrita em ficheiros em Python

Curso de programação em Python lição 14 – Leitura e escrita em ficheiros em Python

Curso de programação em Python lição 14. Leitura e escrita em ficheiros\r\nEste artigo faz parte do curso de programação em Python do INFOmoz. Para acessar outras aulas do curso, por favor visite o índice do curso de programaçãoem Python .\r\n

Objetivos da aula:

\r\n

\r\n
\r\n\r\n
    \r\n

  • Leitura e escrita em arquivos
  • \r\n

\r\nEm Python como tudo é muito simples, a leitura e escrita em arquivos também não podiam deixar de ser. Se você já programou numa outra linguagem aposto que está aula vai lhe surpreender, se nunca programou, não se preocupe que a falta de surpresa também pode lhe surpreender rsrssrsr.\r\n\r\nBem, antes de entrarmos para o contexto da aula, vamos ver um pouco da teoria e importância dos ficheiros de texto para um programa.\r\nOs programas que temos feitos até agora são literalmente inúteis, no bom sentido da palavra, você já pode notar isso, pois sempre que fechamos um programa os dados são perdidos e ao reiniciarmos, temos que reescrever todos os dados introduzidos anteriormente.\r\nAi onde entram os ficheiros em programação: armazenar os dados que foram processados pelo programa para serem reutilizados por outro programa ou então pelo mesmo programa que o criou, para outros fins.\r\nUm exemplo clássico de uso de ficheiros, na área dos vídeo games, são os recordes( best time,etc.). Os recordes de um jogo realizados são guardados em um ficheiro para serem mostrados sempre que um jogo termina por exemplo.\r\nAgora indo para a pratica, em Python existe uma maneira muito simples de se manipular ficheiros de texto, que é o uso das funções open() e close() para abrir e fechar o ficheiro respectivamente.\r\n

A Função open(), abrir ficheiros em Python

\r\nQuando abrimos um ficheiro em Python( talvez em qualquer outra linguagem também, Java e Pascal por exemplo!) temos que indicar o que pretendemos com este ficheiro: escrever novos dados, ler os dados existentes ou acrescentar dados aos dados já existentes.\r\nIsto é indicado como segundo argumento da função open(), sendo o primeiro argumento o caminho para o ficheiro(arquivo).\r\nVeja a seguir algumas declaracões da função open:\r\n\r\n

\r\narquivo=open(“dados.txt”,”w”) #abre o ficheiro dados.txt para escrita.\r\n

\r\n\r\nSe o ficheiro não existir, essa instrução ira criar um novo, se já existir, o seu conteúdo sera APAGADO e substituído pelo novo.\r\n\r\n

\r\narquivo=open(“dados.txt”,”a”) #Abre o ficheiro dados.txt também para escrita.\r\n

\r\n\r\nOs dados introduzidos serão acrescentados aos já existentes. Se o ficheiro não existir retorna uma mensagem de erro.\r\n

\r\narquivo=open(“dados.txt”,”r”) # Abre o ficheiro para leitura.\r\n

\r\n\r\nSe o ficheiro não existir retorna uma mensagem de erro.\r\n\r\nNote que se o ficheiro foi aberto para escrita não pode ser usado para leitura e vice versa.\r\n

Escrevendo em arquivos com Python

\r\nPara escrever dados em arquivos usando Python usamos a função pré-definida write().\r\nA função write recebe como argumento uma string e escreve essa string no arquivo.\r\nVeja um exemplo de utilizacao de write():\r\n\r\n

\r\narquivo=open(“dados.txt”, “w”)\r\nnome=”Elisio Leonardo”<br />arquivo.write(nome)\r\narquivo.close()\r\n

\r\n\r\nUm arquivo só é gravado com sucesso depois que se usa a funcao close() para fecha-lo. Tente fazer um programa sem close() para ver o resultado!!!\r\n\r\nVá para o diretório onde você gravou a sua aplicação e veja o arquivo dados.txt criado!!!\r\n\r\nPodemos reabrir o arquivo e acrescentar mais alguma coisa:\r\n\r\n

\r\noutroarquivo=open(“dados.txt”, “a”)\r\noutroarquivo.write(“\n Curso de Programação em Python”)\r\noutroarquivo.close() \r\n#Nunca se esqueça de fechar o arquivo\r\n

\r\n

Leitura de ficheiros em Python

\r\nSe quisermos carregar o conteúdo de um programa para o nosso ficheiro, usamos a as funções read(), readline() e readlines(). Read() retorna o arquivo todo como uma string. readline() retorna uma linha do arquivo e passa o cursor para a linha a seguir, isto significa que ao chamarmos readline outra vez ele retornara a linha seguinte. Readlines() retorna uma lista onde cada elemento é uma linha do arquivo.\r\nVamos ver alguns exemplos de utilização destas funções:\r\n\r\n

\r\narquivo=open(“dados.txt”,”r”)\r\ntexto=arquivo.read() # Assim lemos todo o ficheiro\r\nprint(texto)\r\n

\r\n\r\nOu usando readline:\r\n\r\n

\r\narquivo=open(“dados.txt”, “r”)\r\nlinha=arquivo.readline() # lemos a primeira linha\r\nwhile linha!=””:\r\n    print(linha) # Imprimimos a linha lida\r\n    linha=arquivo.readline() #E lemos a linha seguinte\r\n

\r\n\r\nQuando atingimos o fim do arquivo, a função retorna uma string vazia ”. Este é o sinal que nos irá indicar que já atingimos o fim do arquivo.\r\n\r\nAgora a minha função preferida: readlines()\r\n\r\n

\r\narquivo=open(“dados.txt”, “r”)\r\nlinhas=arquivo.readlines()\r\nfor linha in linhas: #Cada elemento da lista é uma linha do ficheiro\r\n    print linha\r\n

\r\n\r\nNote que para a função open, poderíamos ter gravado o arquivo noutro diretório,bastando para isso indicar o caminho para o diretório, por ex:\r\n\r\n

\r\narquivo=open(’C:\ Meus ficheiros\aula.txt’,'w’)\r\n

\r\n\r\nAntes de deixar ficar o ultimo programa da aula, vou levantar algumas questões sobre arquivos em Python:\r\nA função write() só vale para strings, e se quisermos trabalhar com objetos(veremos mais tarde o que são), dicionários, listas, tuplas?\r\nAté que dava para converter para string usando a função str, mas ao recarrega-lo para o programa já não seriam mais dos seus tipos mas sim strings!!! Para alterar isso existe em programação(Python também é claro) o conceito de serialização, que veremos mais tarde.\r\nAgora para terminar vou deixar um programa completo, que cadastra alunos duma escola e guarda num arquivo:\r\n\r\n

\r\n#Programa de cadastro de alunos\r\n#Criado por Elisio Leonardo\r\n# Curso de programacao em Python\r\n#INFOmoz 2009\r\nlistanomes=[]\r\nlistaidades=[]\r\ncont=1\r\nwhile cont==1:\r\n    nome=raw_input("Introduza o nome do aluno: ")\r\n    idade=int(input("E a sua idade"))\r\n    listanomes.append(nome)\r\n    listaidades.append(idade)\r\n    cont=int(input("Introduza 1 para continuar a cadastrar ou qualquer coidsa para parar"))\r\narquivo=open("alunos.odt", "w")\r\n#Mude a extencao do ficheiro se quiser\r\ni=0\r\nfor nome in listanomes:\r\n    arquivo.write(nome+" ")\r\n    arquivo.write(str(listaidades[i]))\r\n    arquivo.write("\n")\r\n    i=i+1\r\narquivo.close()\r\n

\r\n\r\nPor hoje é tudo!!! Até a próxima aula. O tema da próxima aula será surpresa, mas garanto que você vai gostar!

\r\n\r\n\r\n
\r\n
\r\n
\r\n

Receba nossas actualizações por email

\r\n
\r\n \r\n \r\n
\r\n

Ver Campanhas anteriores.

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
(Visited 455 times, 1 visits today)
Share