1.
def
primeira_linha (nome_fich):
2.
"""
3.
le a primeira linha do ficheiro conforme e guardado
4.
"""
5.
conteudo
=
open(nome_fich,
'r'
)
6.
cont
=
conteudo.readline()
7.
conteudo.close()
8.
return
cont
Abrimos o ficheiro para leitura, lemos uma linha (forçosamente a primeira) e guardamos o resultado, fechamos o ficheiro e, finalmente, devolvemos o resultado guardado.
Durante uma das aulas práticas alguém perguntou: e se fosse a terceira linha, ou outra qualquer? Foi uma questão pertinente, mas também neste caso a solução é trivial.
01.
def
le_linha_n(nome_fich,n):
02.
"""
03.
lê a n-ésima linha do ficheiro caso exista e mostra-a.
04.
Assume n > 0.
05.
"""
06.
f_in
=
open(nome_fich,
'r'
)
07.
for
i
in
range(n
-
1
):
08.
f_in.readline()
09.
linha
=
f_in.readline()
10.
f_in.close()
11.
return
linha
Entre as habituais instruções de abertura e fecho do ficheiro, temos agora um ciclo para ler sem guardar as (n-1) primeiras linhas. Saídos do ciclo, lemos a linha seguinte (a n-ésima linha) e guardamos. No final, devolvemos o resultado. Esta forma de fazer está relacionada com o facto de um ficheiro ser um objecto de acesso sequencial e não de acesso directo, como é o caso das listas, por exemplo. Claro que podemos navegar pelo ficheiro, reposicionando a janela de acesso com a instrução seek(). Isso não invalida no entanto o que dissemos. A menos que soubéssemos a posição do primeiro caracter da linha n! Experimente a solução apresentada e veja como ela reage a linhas inexistentes.
Sem comentários:
Enviar um comentário