Чтение данных из файла
При чтении текстового файла, поток байтов поступает на вход программы последовательно один за другим, поэтому файл обеспечивает последовательный доступ к данным. То есть, если нам необходимо прочитать 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"). Имя файла, которое доступно для чтения и которое можно использовать в онлайн компиляторе указано в первой строке.