Вся информация, как правило, хранится в виде файлов. Сегодня мы пройдём следующий урок по Python: работа с файлами. С помощью программ, которые мы с вами напишем, можно будет открывать, «читать» и записывать файлы в системе. Загружайте свои среды разработки, мы начинаем.
Python: работа с файлами — это важная тема для программистов, которые работают с обработкой данных. Знание принципов работы с файлами позволяет открывать, читать, записывать и закрывать файлы в различных режимах. Это позволяет программистам использовать различные форматы файлов, такие как текстовый, бинарный, CSV, JSON и XML, для обработки данных. Умение работать с файлами также помогает улучшить производительность программы, поскольку позволяет эффективно обрабатывать большие объемы данных.
Python: работа с файлами в нескольких режимах
Начнём с самого простого. Чтобы начать работать с файлом, его надо просто-напросто открыть. Делается это при помощи следующей команды:
1 |
f = open ('file.txt', 'r') |
В этой команде file.txt — это имя файла с расширением (через точку), а r — это режим работы с файлом. В данном случае это режим чтения, но нашего внимания достойны следующие:
- ‘w’ — открывает файл для записи в него информации, создавая новый файл;
- ‘a’ — открывает файл для «дозаписи» информации в файл, при этом не создавая новый, а отправляя информацию в конец существующего;
- ‘a+’ — режим, позволяющий открыть файл и для чтения, и для «дозаписи».
Будьте внимательны, когда указываете путь к файлу. К примеру, если вы работаете в среде Windows, используйте двойной слэш (\\), а перед самой первой кавычкой ставьте букву u. Она укажет на то, что строка находится в кодировке Unicode.
Приступаем к работе
Один из «сеньоров» мне как-то рассказывал, что для всего есть, как минимум, два способа. Что ж, похоже он прав. В Python: работа с файлами предполагает два способа их прочтения. Во-первых, можно открыть файл, «прочитать» текст из файла и положить его в переменную. Посмотрите, как это сделать:
1 2 3 4 |
f = open (u'C:\\file.txt', 'r') s = f.read() print(s) f.close() |
Во-вторых, отдельные строки из того же файла можно последовательно считать из файла при помощи цикла FOR. А после окончания работы с файлом (впрочем как и в первом случае) нужно закрыть его. Это всё равно как прибраться после себя. Вот, как это делается:
1 2 3 4 |
f = open (u'C:\\file.txt', 'r') for x in f: print(x) f.close() |
Готовы постичь то, что называется Python: работа с файлами? Давайте напишем первую программу, которая создает на диске C новый файл. А потом сразу запишем в него несколько строковых переменных. Обратите внимание, что в конце каждой строки я буду ставить \n, чтобы сделать переход на следующую строку.
1 2 3 4 5 6 |
s1 = 'Я встретил Вас - и всё былое\n' s2 = 'В отжившем сердце ожило\n' f = open(u'C:\\test.txt', 'w') f.write(s1) f.write(s2) f.close() |
Таким образом, на диске С нас ждёт новоиспеченный файл с названием test.txt, в котором окажутся записанные нами строчки. Отлично! Но вот задача: я вспомнил еще пару строк этого замечательного произведения и теперь хочу добавить их в файл. Тот же файл. Я открою созданный программой файл и в режиме «дозаписи» добавлю в него ещё пару строк.
1 2 3 4 5 6 |
s3 = 'Я вспомнил время золотое - \n' s4 = 'И сердцу стало так тепло...\n' f = open(u'C:\\test.txt', 'a') f.write(s3) f.write(s4) f.close() |
Python: работа с файлами — несколько хитростей
Для открытия файлов очень удобно использовать конструкцию with — open — as. Прелесть этой конструкции в том, что файл в таком случае вам не нужно задумываться о том, чтобы закрывать файл при помощи f.close(). Взгляните на пример:
1 2 3 |
s5 = 'Привет!\n' with open(u'C:\\test.txt', 'w') as f: f.write(s5) |
Домашнее задание
Напишите программу, которая будет читать файл, внутри которого есть несколько строк. В них, в свою очередь содержатся фразы, разделённые символом «|». Далее программа должна записать эти фразы в отдельный новый файл, каждую с отдельной строки, с пояснениями в начале, какой тип данных выводится на экран.
Для примера я дам текст для входного файла:
Иван Иванов | ivanov@mail.ru | password123
Пётр Петров | petrov@mail.ru | password456
Василий Васильев | vasiliev@mail.ru | password789
А на выходе должен получиться вот такой файл:
Имя: Иван Иванов
Email: ivanov@mail.ru
Пароль: password123
Имя: Пётр Петров
Email: petrov@mail.ru
Пароль: password456
Имя: Василий Васильев
Email: vasiliev@mail.ru
Пароль: password789
Показать решение
1 |