Чтение данных из файла
При чтении текстового файла, поток байтов поступает на вход программы последовательно один за другим, поэтому файл обеспечивает последовательный доступ к данным. То есть, если нам необходимо прочитать 10-е по счету значение из файла, необходимо сначала прочитать предыдущие 9.
Чтение одной строки файла позволяет выполнять метод
readline()
. Вызывается данный метод для файловой переменной.
Fin = open("input.txt")
s = Fin.readline()
К считываемой строке можно применять различные методы, аналогичные тем, которые применяли при считывании с клавиатуры (
split()
,
map()
и пр.). Например, если в строке файла находятся два числа через пробел, то считать их можно следующим образом:
Fin = open("input.txt")
s = Fin.readline().split() # разбили строку по пробелам s = ["2007", "2021"]
a, b = map(int, s) # ко всем элементам списка s применяем метод int(),
# то есть преобразуем символьную строку в число
# a, b = int(s[0], s[1]) # это то же самое, что и строкой выше
# a, b = [int(x) for x in s] # то же самое только в виде генератора
Метод
read()
считывает все содержимое из файла и возвращает строку, которая может содержать символы '
\n
'. Если методу
read()
передать целочисленный параметр, то будет считано не более заданного количества символов. Например, считывать файл побайтово можно при помощи метода
read(1)
.
При открытии файла указатель, который определяет текущее место в файле, устанавливается в начало файла и при чтении смещается на позицию, следующую за прочитанными данными. При записи указатель переводится на следующую свободную позицию.
Примечение
При работе в онлайн-компиляторе, который отоюражается при решении задачи, файл находится в том же месте куда сохраняется программа при запуске. Таким образом, для доступа к этому файлу в методе
open
достаточно указать имя файла (без указания пути). Например, для файла
input.txt
можно написать просто
Fin = open("input.txt"
). Имя файла, которое доступно для чтения и которое можно использовать в онлайн компиляторе указано в первой строке.