Практически любая программа работает с данными. Конфигурационные файлы, отчеты, логи, списки пользователей, экспорт из Excel — все это хранится в файлах. Поэтому умение читать и записывать файлы является одним из базовых навыков Python-разработчика.
В этой статье разберем основные способы работы с файлами в Python и рассмотрим наиболее распространенные сценарии.
Открытие файла
Для работы с файлами используется встроенная функция open().
file = open("example.txt", "r", encoding="utf-8")
Аргументы функции:
- имя файла;
- режим открытия;
- кодировка.
На практике чаще всего используется кодировка UTF-8.
Режимы открытия файлов
Python поддерживает несколько режимов работы.
Чтение
file = open("example.txt", "r", encoding="utf-8")
Режим "r" открывает файл только для чтения.
Запись
file = open("example.txt", "w", encoding="utf-8")
Режим "w" полностью перезаписывает содержимое файла.
Добавление данных
file = open("example.txt", "a", encoding="utf-8")
Режим "a" добавляет данные в конец файла.
Чтение файла целиком
Самый простой способ прочитать файл — использовать метод read().
with open("example.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)
После выполнения в переменной content будет храниться весь текст файла.
Этот способ удобен для небольших файлов.
Чтение построчно
Если файл большой, лучше читать его по строкам.
with open("example.txt", "r", encoding="utf-8") as file:
for line in file:
print(line.strip())
Такой подход требует меньше памяти и подходит для обработки больших объемов данных.
Запись данных в файл
Для записи используется метод write().
with open("notes.txt", "w", encoding="utf-8") as file:
file.write("Привет, Python!")
После выполнения будет создан файл с указанным содержимым.
Добавление новых строк
Режим "a" позволяет дописывать данные без удаления существующих.
with open("log.txt", "a", encoding="utf-8") as file:
file.write("Новое сообщение\n")
Это часто используется для ведения логов.
Почему стоит использовать with
Новички часто пишут так:
file = open("example.txt", "r")
content = file.read()
file.close()
Но безопаснее использовать контекстный менеджер:
with open("example.txt", "r", encoding="utf-8") as file:
content = file.read()
После завершения блока файл автоматически закрывается.
Такой подход считается хорошей практикой.
Работа с CSV-файлами
CSV используется для хранения табличных данных.
Пример файла:
name,age
Alice,25
Bob,30
Чтение CSV:
import csv
with open("users.csv", encoding="utf-8") as file:
reader = csv.DictReader(file)
for row in reader:
print(row["name"])
Модуль csv уже входит в стандартную библиотеку Python.
Работа с JSON
JSON является одним из самых популярных форматов обмена данными.
Пример JSON:
{
"name": "Alice",
"age": 25
}
Чтение JSON:
import json
with open("user.json", encoding="utf-8") as file:
data = json.load(file)
print(data["name"])
Запись JSON:
import json
user = {
"name": "Alice",
"age": 25
}
with open("user.json", "w", encoding="utf-8") as file:
json.dump(user, file, ensure_ascii=False, indent=4)
Обработка ошибок
При работе с файлами могут возникать ошибки.
Например, если файл не существует.
try:
with open("missing.txt", "r", encoding="utf-8") as file:
content = file.read()
except FileNotFoundError:
print("Файл не найден")
Обработка исключений делает программу более надежной.
Практический пример
Предположим, необходимо сохранить список задач.
tasks = [
"Изучить Python",
"Прочитать документацию Django",
"Создать новый проект"
]
with open("tasks.txt", "w", encoding="utf-8") as file:
for task in tasks:
file.write(task + "\n")
Позже файл можно снова прочитать и использовать данные в программе.
Заключение
Работа с файлами — один из фундаментальных навыков в Python. Чтение текстовых файлов, обработка CSV и JSON, сохранение данных и работа с логами встречаются практически в каждом реальном проекте.
После освоения базовых операций стоит изучить работу с Excel-файлами, логированием и взаимодействием с базами данных. Эти инструменты помогут перейти от учебных примеров к созданию полноценных приложений.
Пока нет комментариев