ex exxam.ruВсе задания
практикапошаговые заданиячтение файлабез регистрации

Практикум: читаем файл

Прежде чем считать, научимся читать файл: строки, поля, числа. Данные каждый раз разные — разное число строк и колонок. Чтение по строкам работает для любого такого файла, ведь записи разделены переводом строки.

Строки и перевод строки

Текстовый файл — это строки, разделённые переводом строки. Он бывает разным: \n (LF), \r\n (CRLF, Windows) и \r (CR). Метод read().splitlines() делит текст по любому из них и возвращает список строк.

Почему цикл по строкам подходит для любого файла

Цикл for line in open('data.txt'): (или for line in lines:) идёт по каждой строке и совсем не знает, сколько в ней полей. Поэтому он пройдёт по всем строкам и отобразит всё — независимо от числа колонок и длины файла. Читать строки и разбирать строку — разные вещи.

Поля внутри строки

Число колонок определяется уже разбором строки: len(line.split()) делит строку по пробелам и считает поля. А минимум и максимум ищут, собирая все числа файла: пройти по строкам, разбить каждую на числа и взять min/max.

Как пользоваться этим режимом. Выполняйте шаг за шагом: прочитайте вопрос, напишите код в песочнице, нажмите «Выполнить», затем «Проверить». Подсказка и решение — ниже.

Загрузка практикума…

Частые вопросы

Почему чтение по строкам работает для любого файла?
Метод splitlines() и цикл по строкам делят текст только по переводам строки. Сколько полей в строке и сколько строк в файле — не важно: цикл пройдёт по всем строкам и выведет всё.
Какие бывают переводы строк?
LF (\n), CRLF (\r\n, Windows) и CR (\r, старый Mac). splitlines() понимает все три, поэтому код чтения не зависит от системы, где создан файл.
Как узнать число колонок?
Разобрать одну строку: line.split() разбивает её по пробелам, а len(...) даёт число полей. Это уже про содержимое строки, а не про чтение.
Зачем смотреть файл, если есть программа?
Из файла видно его устройство: сколько строк, сколько полей, какой диапазон значений. Проверить это глазами дешевле, чем отлаживать программу вслепую.

Разбор задания 22Все задания