Счетчик просмотров80

ЧТЕНИЕ ФАЙЛОВ

Оглавление
Зачем это нужноОткрытие файлаТри способа прочитатьГотовые шаблоны под форматы данныхЧтение чисел: главный шаблонКогда программа падает при чтенииКак устроен try / exceptПример из задания 26

Зачем это нужно

В заданиях второй части (17, 24, 26, 27) данные лежат в текстовом файле. Чтобы их обработать, файл сначала надо открыть и прочитать. Разберём все базовые способы — и что делать, когда чтение падает с ошибкой.

Открытие файла

PYTHON-КОД
1
2

Три способа прочитать

МетодЧто вернёт
f.read()весь файл одной строкой
f.readline()одну строку
f.readlines()список всех строк

Готовые шаблоны под форматы данных

ФайлКак читать
одна строка символов (24)s = f.read().strip()
столбик чисел (17, 27)[int(x) for x in f]
числа в строке через пробелlist(map(int, line.split()))

Чтение чисел: главный шаблон

PYTHON-КОД
1
2
3
4

Если в строке несколько чисел через пробел — добавляем split():

PYTHON-КОД
1
2
3

Когда программа падает при чтении

Три типовые ситуации на экзамене:

  • Файла нет или имя набрано неверно → FileNotFoundError. Программа не запускается вообще.
  • В конце файла лишняя пустая строка → int("") даёт ValueError.
  • В строке не то количество чисел → распаковка a, b = ... тоже даёт ValueError.

Всё это ловится конструкцией try / except.

Как устроен try / except

PYTHON-КОД
1
2
3
4

Питон выполняет блок try. Если внутри возникает ошибка указанного типа — управление прыгает в except, и программа продолжает работать вместо аварийного завершения.

ИсключениеКогда возникает
ValueErrorint("abc"), int(""), распаковка не того количества значений
FileNotFoundErrorфайла нет рядом с программой, опечатка в имени
IndexErrorобращение к a[i] за границей списка
KeyErrorобращение к несуществующему ключу словаря
ZeroDivisionErrorделение или % на ноль

Указывать тип ошибки нужно всегда. Голый except: ловит вообще всё, включая твои собственные опечатки, — и ты не заметишь, что программа считает не то.

Баннер статьи

Пример из задания 26

Пусть в файле 26.txt в первой строке два числа — количество заявок N и вместимость склада M, а в каждой из следующих строк два числа: объём груза и его стоимость. Читаем устойчиво к пустым и битым строкам:

PYTHON-КОД
1
2
3
4
5
6
7
8
9
10
11

Проверка len(data) == n — бесплатная страховка: если числа разошлись, файл прочитан неправильно, и решать дальше бессмысленно.

PYTHON-КОД
1

Дальше идёт обычная логика 26 — сортировка по нужному критерию:

А если хочется подстраховаться ещё и от неверного имени файла:

PYTHON-КОД
1
2
3
4

Оцените статью

Другие статьи по предмету

Другие статьи не найдены