0% acharam este documento útil (0 voto)
13 visualizações3 páginas

Leitura e Escrita de Ficheiros em Python

A Quick pdf to get you to know better everything there is to know about files in python

Enviado por

gcg19987
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
13 visualizações3 páginas

Leitura e Escrita de Ficheiros em Python

A Quick pdf to get you to know better everything there is to know about files in python

Enviado por

gcg19987
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Fundamentos de Programação, Aula 06

Leitura e escrita de ficheiros. Excepções.


Exercícios
1. O programa [Link] pede um nome de um ficheiro e passa-o como argumento à
função fileSum. Complete essa função para calcular e devolver a soma dos valores do
ficheiro. Considere que o ficheiro contém um valor por linha, como no exemplo abaixo.
Na função main, experimente comentar a linha #A e descomentar #B.
[Link]
12.39
1.93
...

2. O ficheiro [Link] contém linhas com as palavras UP, DOWN ou com um par de
números. UP e DOWN são instruções para a tartaruga levantar ou pousar o pincel. Cada
par representa um ponto (x, y) para onde a tartaruga deve deslocar-se (com .goto).
Complete o programa [Link] para ler as instruções do ficheiro e usar uma
tartaruga para traçar o desenho. Sugestão: use o método .split() para dividir as
linhas que têm coordenadas. (Adaptado do exercício 11.5 do livro [1].)
3. O ficheiro [Link] contém as notas dos alunos de uma turma. Cada linha tem o
registo de um aluno e cada coluna tem um campo de informação. As colunas são
separadas por caracteres TAB. A primeira linha contém um cabeçalho com os títulos dos
campos. Os ficheiros [Link] e [Link] têm as notas dos alunos de
outras turmas, com o mesmo formato. Complete o programa [Link] para ler e
processar esses ficheiros.
a) Complete a função loadFile(fname1, lst) para que, dado o nome de um
ficheiro com este formato, leia o seu conteúdo e acrescente um tuplo por cada aluno
à lista lst. Cada tuplo deve ter os campos (número, nome, nota1, nota2, nota3).
Use o método .split('\t') para dividir cada linha e converta as notas e os
números para os tipos adequados.
b) Crie uma função notaFinal(reg) que, dado um tuplo com o registo de um
aluno, devolva a nota final calculada pela média das três notas no registo.
c) Crie uma função printPauta(lst) que, dada uma lista com registos de alunos,
mostre uma tabela com os números, nomes e notas finais, formatados e alinhados
como no exemplo abaixo. O nome deve aparecer centrado, enquanto o número e a
nota devem aparecer ajustados à direita.
d) Usando estas funções, complete a função main() para ler os ficheiros, ordenar a
lista com o método .sort() e mostrar a pauta.

1
Fundamentos de Programação, Aula 06

4. Altere o programa anterior para gravar a pauta formatada num ficheiro de texto. Pode
usar o método write ou a função print com o argumento file=. Sugestão: se
generalizar a função printPauta para também receber um argumento file extra,
pode reutilizá-la para gravar no ficheiro.
5. Execute o programa [Link] e experimente introduzir uma resposta não
numérica. O programa terminará com uma excepção ValueError gerada pela
chamada à função float dentro da função floatInput.

a) Altere a função floatInput para validar o valor: pede um valor, tenta convertê-lo
em float e, se falhar, avisa o utilizador e repete.

b) Acrescente dois argumentos min e max e valide também se o valor está no intervalo
[min, max]. Se não estiver, a função deve avisar e repetir.

c) *Torne os argumentos min e max opcionais. Quando omitidos, min deve


assumir o valor -∞ (-[Link]) e max deve assumir +∞ (+[Link]).

d) *Acrescente à função uma instrução assert para exigir que o argumento min não
exceda max.

6. *Escreva uma função compareFiles que verifica se dois ficheiros são iguais. Para
poupar tempo e memória, leia e compare blocos de 1 KiB de cada vez, e termine logo que
descubra diferenças. Abra os ficheiros em modo binário e use a função read. Teste a

2
Fundamentos de Programação, Aula 06

função num programa que recebe os nomes dos ficheiros como argumentos. (1 KiB lê-se
“um kibibyte” e corresponde a 1024 bytes.)
7. *Para saber o tamanho em bytes de um ficheiro, pode usar a função
[Link]("ficheiro").st_size. Crie uma função que percorra um diretório
(com [Link]) e mostre o tamanho de cada ficheiro.

Você também pode gostar