Дерево каталогов и путь к файлу
Файлы хранятся в каталогах (папках), а каталоги вложены друг в друга. Начало дерева — корневой каталог диска (C:\). Такая структура называется деревом: у каждого файла ровно один родительский каталог.
C:\Школа\Физика\задачи.txt. Имя файла состоит из имени и расширения (после последней точки), например задачи и txt.Для перемещения используют .. — «подняться на один уровень вверх» (в родительский каталог). Из C:\Школа\Физика путь ..\Химия ведёт в C:\Школа\Химия.
Проверь себя. Вы находитесь в C:\Школа\Физика. Выполните команду «подняться на уровень вверх». В каком каталоге вы окажетесь?
Ответ: C:\Школа
Маски файлов
Маска — шаблон имени файла. Два спецсимвола:
? — ровно один любой символ.* — любая последовательность символов, в том числе пустая.| Маска | Подходят | Не подходят |
|---|---|---|
d?ta.txt | data.txt, dota.txt | dta.txt, date.txt |
*.txt | a.txt, abc.txt, .txt | a.text, a.tx |
photo?.jpg | photo1.jpg | photo.jpg, photo12.jpg |
data*.txt соответствует файл data.txt. А вот ? пустой строкой быть не может.Поиск файлов по признакам
В заданиях типа ОГЭ-11 файлы описаны таблицей (имя, размер, дата). Нужно применить условие: расширение, размер, год. Читайте условие внимательно: «.doc» — это не «.docx».
Пример. Файлы: report.doc (250 Кб), letter.doc (90 Кб), plan.docx (300 Кб), draft.doc (410 Кб). Условие «расширение .doc и размер > 200 Кб» выберет report.doc и draft.doc — всего 2. plan.docx отсеивается по расширению, letter.doc — по размеру.
Чтение файла в Python (ЕГЭ-17 и другие)
В ЕГЭ данные часто лежат в текстовых файлах: числа через пробел или по одному в строке. Стандартный шаблон:
# все числа из файла в список
with open('data.txt') as f:
nums = [int(x) for x in f.read().split()]
print(max(nums), len(nums))
# построчная обработка: в строке два числа
s = 0
for line in open('data.txt'):
a, b = map(int, line.split())
if a > b:
s += a - b
print(s)
f.read() — весь файл одной строкой; split() разрезает по пробелам и переводам строк; int превращает текст в число; цикл for line in f идёт по строкам.Проверь себя. Файл data.txt содержит числа 4 17 9 12 3. Какое число выведет print(max(nums)) после чтения по шаблону выше?
Ответ: 17