7.5 Lendo Um Arquivo
Ainda no terminal do Python 3, veremos o funcionamento da leitura de um arquivo. Como agora o arquivo palavras.txt está na pasta do projeto jogos , devemos executar o comando que abre o terminal do Python 3 na pasta do projeto.
$ cd jogos
$ python3
Vamos então abrir o arquivo no modo de leitura, basta passar o nome do arquivo e a letra “r” para a função open() , como já visto anteriormente.
arquivo = open(‘palavras.txt’, ‘r’)
Diferente do modo “w”, abrir um arquivo que não existe no modo “r” não vai criar um arquivo. Se “palavras.txt” não existir, o Python vai lançar o erro FileNotFoundError :
arquivo.open(‘frutas.txt’, ‘r’)
Traceback (most recent call last): File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: ‘frutas.txt’
Como o arquivofrutas.txt não existe na pasta jogos, o Pyhton não consegue encontrar e acusa que não existe nenhum arquivo ou diretório com este nome na pasta raiz.
Como abrimos o arquivo no modo de leitura, a função write() não é suportada:
arquivo.write(“oi”)
Traceback (most recent call last): File "<stdin>", line 1, in <module>
io.UnsupportedOperation: not writable
Para ler o arquivo inteiro, utilizamos a função read() :
arquivo.read() 'banana\nmelancia\nmorango\nmanga\n'
Mas ao executar a função novamente, será retornado uma string vazia:
arquivo.read() ”
Isso acontece porque o arquivo é como um fluxo de linhas, que começa no início do arquivo como se fosse um cursor. Ele vai descendo e lendo o arquivo. Após ler tudo, ele fica posicionado no final do arquivo. Quando chamamos a função read() novamente, não há mais conteúdo pois ele todo já foi lido.
Portanto, para ler o arquivo novamente, devemos fechá-lo e abrí-lo outra vez:
arquivo.close()
arquivo = open(‘palavras.txt’, ‘r’) arquivo.read()