Lendo dados de um arquivo
Ao ler um arquivo de texto, o fluxo de bytes entra na entrada do programa sequencialmente, um após o outro, de modo que o arquivo fornece acesso sequencial aos dados. Ou seja, se precisarmos ler o 10º valor do arquivo, primeiro devemos ler os 9 anteriores.
A leitura de uma única linha de um arquivo permite que o método
readline() seja executado. Este método é chamado em uma variável de arquivo.
Fin = open("input.txt")
s = Fin.readline()
Vários métodos podem ser aplicados à string lida, semelhantes aos usados na leitura do teclado (split(), map(), etc.). Por exemplo, se houver dois números separados por um espaço em uma linha de um arquivo, você poderá contá-los da seguinte maneira:
Fin = open("input.txt")
s = Fin.readline().split() # divide a linha nos espaços s = ["2007", "2021"]
a, b = map(int, s) # aplica o método int() a todos os elementos da lista s,
# ou seja, converte a cadeia de caracteres em um número
# a, b = int(s[0], s[1]) # isso é o mesmo que a linha acima
# a, b = [int(x) for x in s] # o mesmo que um gerador
O método read() lê todo o conteúdo do arquivo e retorna uma string que pode conter os caracteres '\n'. Se um parâmetro inteiro for passado para o método read(), não mais do que o número especificado de caracteres será lido. Por exemplo, você pode ler um arquivo byte por byte usando o método read(1).
.
Quando um arquivo é aberto, o ponteiro que determina a localização atual no arquivo é colocado no início do arquivo e, quando lido, é deslocado para a posição seguinte à leitura dos dados. Ao escrever, o ponteiro é movido para a próxima posição livre.