Как записывать данные в файлы в Python: руководство для начинающих
Узнайте, как записывать, добавлять и сохранять текстовые, CSV и JSON файлы в Python, используя встроенные инструменты обработки файлов, которые работают «из коробки».

# Введение
Запись в файлы — важный навык в Python. Она позволяет сохранять данные навсегда, предотвращая их потерю при завершении работы программы. Сохранение в файлы можно использовать для хранения результатов, журналов, отчетов, пользовательского ввода, настроек и структурированных данных.
В этом руководстве вы узнаете, как создавать текстовые файлы, записывать несколько строк, добавлять контент, работать с папками и сохранять данные в форматах CSV и JSON. Вы также узнаете о наиболее распространенных режимах работы с файлами, включая w, a, x и r, и когда следует использовать каждый из них.
В итоге вы сможете писать программы на Python, которые сохраняют результаты, отчеты, журналы и структурированные данные в файлы.
# Создание вашего первого текстового файла
Простейший способ записи в файл — использовать встроенную функцию Python `open()`.
Режим w означает режим записи. Если файл не существует, Python создаст его. Если файл уже существует, Python заменит его существующее содержимое.
file = open(«message.txt», «w») file.write(«Hello, this is my first file written with Python.» file.close()
После выполнения этого кода Python создаст файл с именем message.txt в той же папке, что и ваш блокнот или скрипт.
Вы можете прочитать файл, чтобы проверить, что было сохранено.
файл = open(«message.txt», «r») содержимое = file.read() файл.close() print(содержимое)
Выход:
Здравствуйте, это мой первый файл, написанный на Python.
# Использование с функцией open(): Лучший способ
Хотя вы можете открывать и закрывать файлы вручную, рекомендуется использовать функцию open().
Это автоматически закрывает файл после завершения выполнения блока кода. Это более чистый, безопасный и широко используемый подход в реальных проектах на Python.
with open(«message.txt», «w») as file: file.write(«This file was written using with open().») with open(«message.txt», «r») as file: content = file.read() print(content)
Выход:
Этот файл был создан с использованием функции open().
Использование функции open() является наилучшей практикой, поскольку вам не нужно помнить о закрытии файла вручную.
# Понимание режимов файлов
При открытии файла параметр `mode` указывает Python, что вы хотите с ним сделать.
| Режим | Значение |
|---|---|
| в | Запись в файл. Создает новый файл или перезаписывает существующий. |
| а | Добавить в файл. Добавляет содержимое в конец файла, не удаляя существующее. |
| х | Создайте новый файл. Если файл уже существует, создание файла завершится ошибкой. |
| р | Чтение файла. Ошибка, если файл не существует. |
Для записи файлов наиболее распространенными режимами являются w и a. Используйте w, когда хотите создать новый файл или заменить существующее содержимое. Используйте a, когда хотите добавить новое содержимое в конец файла.
# Написание нескольких строк
Для написания нескольких строк добавьте символ новой строки n.
with open(«notes.txt», «w») as file: file.write(«Строка 1: Изучаем Pythonn») file.write(«Строка 2: Практикуемся в работе с файламиn») file.write(«Строка 3: Создаем небольшие проектыn»)
Прочитайте файл:
with open(«notes.txt», «r») as file: print(file.read())
Выход:
Строка 1: Изучите Python. Строка 2: Практикуйтесь в работе с файлами. Строка 3: Создавайте небольшие проекты.
Также вы можете использовать функцию writelines() для записи списка строк в файл.
tasks = [ «Написать код на Pythonn», «Запустить ноутбукn», «Проверить выходной файлn» ] with open(«tasks.txt», «w») as file: file.writelines(tasks)
Прочитайте файл:
with open(«tasks.txt», «r») as file: print(file.read())
Выход:
Напишите код на Python. Запустите ноутбук. Проверьте выходной файл.
Важно помнить, что функция writelines() не добавляет переносы строк автоматически. Вам нужно добавить символ n самостоятельно.
# Добавление данных в файл
Иногда вам не нужно заменять существующее содержимое файла. Вместо этого вы можете захотеть добавить новый контент в конец.
Для этого используйте режим добавления: a.
with open(«journal.txt», «w») as file: file.write(«День 1: Я начал изучать работу с файлами в Python.n») with open(«journal.txt», «a») as file: file.write(«День 2: Я научился добавлять текст в файл.n»)
Прочитайте файл:
with open(«journal.txt», «r») as file: print(file.read())
Выход:
День 1: Я начал изучать работу с файлами в Python. День 2: Я научился добавлять текст в файл.
Режим добавления полезен при работе с журналами, отчетами или любыми другими файлами, в которые необходимо постоянно добавлять новую информацию.
# Безопасное создание файлов
Если вы хотите создать новый файл, но избежать перезаписи существующего, используйте режим x.
В этом режиме файл создается только в том случае, если он еще не существует. Если файл уже существует, Python генерирует исключение FileExistsError.
try: with open(«new_file.txt», «x») as file: file.write(«Этот файл был создан в режиме x.») print(«Файл успешно создан.») except FileExistsError: print(«Файл уже существует, поэтому Python его не перезаписал.»)
Если файл не существует, вы можете увидеть следующее:
Файл успешно создан.
Если файл уже существует, вы можете увидеть следующее:
Файл уже существует, поэтому Python его не перезаписал.
Это полезно, когда вы хотите защитить существующие файлы от случайной замены.
# Работа с путями к файлам
По умолчанию Python сохраняет файлы в той же папке, где запущен ваш блокнот или скрипт.
Если вы хотите сохранять файлы в определённую папку, вы можете использовать pathlib .
from pathlib import Path output_folder = Path(«output») output_folder.mkdir(exist_ok=True) file_path = output_folder / «summary.txt» with open(file_path, «w») as file: file.write(«Этот файл был сохранен в выходной папке.») print(f»Файл сохранен в: {file_path}»)
Выход:
Файл сохранен в: output/summary.txt
Теперь прочтите файл:
with open(«output/summary.txt», «r») as file: print(file.read())
Выход:
Этот файл был сохранен в выходной папке.
Вызов функции mkdir(exist_ok=True) создает папку, если она еще не существует. Если папка уже существует, Python не выдает ошибку.
# Запись CSV-файлов
CSV-файлы полезны для сохранения табличных данных, таких как строки и столбцы. Обычно их открывают в табличных редакторах, таких как Excel или Google Sheets.
Для записи CSV-файла в Python используйте модуль csv .
import csv students = [ [«Name», «Score»], [«Ayesha», 92], [«Bilal», 85], [«Sara», 88] ] with open(«students.csv», «w», newline=»») as file: writer = csv.writer(file) writer.writerows(students)
Прочитайте CSV-файл:
with open(«students.csv», «r») as file: print(file.read())
Выход:
Имя, Оценка Аиша, 92, Билал, 85, Сара, 88
Аргумент newline=»» помогает избежать лишних пустых строк при записи CSV-файлов, особенно в Windows.
# Запись JSON-файлов
JSON — ещё один распространённый формат для сохранения структурированных данных. Он часто используется для словарей, ответов API, файлов конфигурации и вложенных данных.
Для записи JSON-файлов в Python используйте модуль json .
import json profile = { «name»: «Ayesha», «role»: «Data Analyst», «skills»: [«Python», «SQL», «Excel»], «active»: True } with open(«profile.json», «w») as file: json.dump(profile, file, indent=4)
Прочитайте JSON-файл:
with open(«profile.json», «r») as file: print(file.read())
Выход:
{ «name»: «Ayesha», «role»: «Data Analyst», «skills»: [ «Python», «SQL», «Excel» ], «active»: true }
Аргумент indent=4 упрощает чтение JSON-файла.
# Распространенные ошибки новичков
Вот несколько распространенных ошибок, которые допускают новички при написании файлов на Python.
| Ошибка | Что происходит | Как это исправить |
|---|---|---|
| Забыл закрыть файл | Изменения могут быть сохранены некорректно. | Использовать с функцией open() |
| Использование w вместо a | Существующий контент удаляется. | Используйте a при добавлении |
| Забывание n | Текст расположен в одну строку. | Добавить символы новой строки |
| Запись в отсутствующую папку | Python выдает ошибку. | Сначала создайте папку. |
| Запись нестроковых данных напрямую | В Python может возникнуть ошибка TypeError. | Преобразуйте значения в строки или используйте CSV/JSON. |
# Завершение
Запись в файлы — один из самых полезных навыков для начинающих программистов на Python. Я до сих пор помню, как на втором семестре инженерного факультета участвовал в конкурсе по программированию и потратил почти час, пытаясь понять, как сохранить файл. Если бы я знал, что это так просто, я бы, возможно, победил.
Сохранение файлов помогает хранить журналы, сохранять результаты работы программ, создавать отчеты, хранить пользовательские данные и даже читать и записывать простые базы данных, используя такие форматы, как JSON. Самое приятное, что обработка файлов в Python является встроенной, быстрой и работает «из коробки».
Для большинства задач используйте функцию open(), поскольку она автоматически закрывает файл. Используйте w для записи или перезаписи файла, a для добавления нового содержимого и x для безопасного создания нового файла без замены существующего.
Абид Али Аван (@1abidaliawan) — сертифицированный специалист по анализу данных, увлеченный созданием моделей машинного обучения. В настоящее время он занимается созданием контента и написанием технических блогов о технологиях машинного обучения и анализа данных. Абид имеет степень магистра в области управления технологиями и степень бакалавра в области телекоммуникационной инженерии. Его цель — создать продукт на основе искусственного интеллекта с использованием графовой нейронной сети для студентов, страдающих психическими заболеваниями.
Источник: www.kdnuggets.com

Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.