Introdução à programação e aos algoritmos
6.5 Escrevendo em Arquivos
Escreva um programa que converta a primeira letra de cada palavra de um arquivo
em maiúscula e escreva o resultado na tela.
6.5 ESCREVENDO EM ARQUIVOS
Escrever em um arquivo demanda abri-lo anteriormente para escrita ou atualização (‘w’ ou ‘a’). Lembrando que se um arquivo já existente for aberto para escrita seu conteúdo anterior, será totalmente apagado, portanto, cuidado!
Considere o Programa 4.6 que calcula uma tabela de senos e cossenos formatada. Vamos modificá-lo para escrever em um arquivo chamado “tabelaSenosCossenos.txt”.
1 import math
2
3 arquivo = open(‘tabelaSenoCosseno.txt’, ‘w’) 4 arquivo.write (‘{:>9}{:>9}{:>9}
{:>9}’.format(‘Graus’,
5 ‘Radianos’,’Seno’,’Cosseno’)) 6 for graus in range(0,361,30):
7 rad = math.radians(graus)
8 arquivo.write(‘{:>9.2f}{:>9.2f}{:>9.2f} {:>9.2f}’.format(
9 graus, rad, math.sin(rad), math.cos(rad))) 10 arquivo.close()
■ Programa 6.16: Programa que cria arquivo com tabela de
senos e cossenos.
Qual é o resultado do arquivo? Não muito bom:
Tudo ficou muito bagunçado. A razão é que a função write()
não coloca automaticamente uma nova linha ao final de cada impressão. Você é responsável por isso. Para tanto, basta modificar as linhas 4 e 8 para incluir o caractere de nova linha. Lembra qual é? Isso mesmo: \n. Substitua a linha 4 por:
arquivo.write (‘{:>9}{:>9}{:>9}
{:>9}\n’.format(‘Graus’,
‘Radianos’, ‘Seno’, ‘Cosseno’))
e a linha 8 por:
arquivo.write(‘{:>9.2f}{:>9.2f}{:>9.2f}
{:>9.2f}\n’.format(
graus, rad, math.sin(rad), math.cos(
rad)))
Agora a saída no arquivo fica muito melhor: