Fundamentos de Python: estruturas de dados
de texto. Em cada passagem pelo laço, a variável do laço é ligada à próxima linha de texto na sequência. Eis uma sessão que reabre o arquivo de exemplo e visita as linhas de texto nele: 28
>>> f = open("myfile.txt", 'r') >>> for line in f: print(line) First line. Second line.
Observe que print parece produzir uma nova linha extra. Isso ocorre porque cada linha de entrada de texto do arquivo retém o caractere de nova linha. Você pode eliminar essa nova linha da saída usando o argumento opcional para o print, função mostrada anteriormente. Nos casos em que você deseja ler determinado número de linhas de um arquivo (digamos, apenas a primeira linha), use o método de arquivo readline. O método readline consome uma linha de entrada e retorna esta string, incluindo a nova linha. Se readline encontrar o final do arquivo, ele retorna a string vazia. O próximo segmento de código usa um laço while True para inserir todas as linhas de texto com readline: >>> f = open("myfile.txt", 'r') >>> while True: line = f.readline() if line == "": break print(line) First line. Second line.
Lendo números de um arquivo Todas as operações de entrada de arquivo retornam dados ao programa como strings. Se essas strings representam outros tipos de dados, como inteiros ou números de ponto flutuante, o programador deve convertê-las nos tipos apropriados antes de manipulá-las posteriormente. Em Python, as representações de strings de números inteiros e números de ponto flutuante podem ser convertidas para os próprios números usando as funções int e float, respectivamente. Ao ler dados de um arquivo, outra consideração importante é o formato dos itens de dados no arquivo. Anteriormente, vimos um exemplo de segmento de código que produz números inteiros separados por novas linhas em um arquivo de texto. Durante a entrada, esses dados podem ser lidos com um simples laço for. Esse laço acessa uma linha de texto em cada passagem. Para converter essa linha para o inteiro contido nela, o programador executa o método string strip para remover a nova linha e, em seguida, executa a função int para obter o valor inteiro. O próximo segmento de código ilustra essa técnica. Ele abre o arquivo de inteiros aleatórios gravado anteriormente, os lê e imprime a soma. f = open("integers.txt", 'r')
Fundamentos de Python_estruturas de dados_miolo.indb 28
22/02/2022 10:37:02