Python

Как создать файл в Python: open, pathlib и запись текста

Создать файл в Python можно через встроенную функцию open() в режиме записи или через модуль pathlib. Для обычного текстового файла достаточно открыть файл в режиме w, записать строку и закрыть файл. Лучше делать это через with, чтобы Python сам корректно закрыл файл после записи

Самый простой пример

with open("notes.txt", "w", encoding="utf-8") as file:
    file.write("Привет, Python")

После запуска рядом с вашим скриптом появится файл notes.txt с текстом Привет, Python

Что означает режим w

Режим w означает write, то есть запись. Если файла нет, Python создаст его. Если файл уже есть, Python перезапишет его содержимое

with open("result.txt", "w", encoding="utf-8") as file:
    file.write("Первая строка\n")
    file.write("Вторая строка\n")

Важный момент: если result.txt уже существовал, старый текст внутри будет удален. Поэтому режим w подходит, когда вы точно хотите создать файл заново или полностью заменить его содержимое

Как дописать текст в существующий файл

Если нужно не перезаписать файл, а добавить текст в конец, используйте режим a

with open("notes.txt", "a", encoding="utf-8") as file:
    file.write("Новая заметка\n")

Режим a означает append. Если файла нет, он будет создан. Если файл есть, новый текст добавится в конец

Как создать файл только если его еще нет

Иногда нужно защититься от случайной перезаписи. Для этого есть режим x

with open("report.txt", "x", encoding="utf-8") as file:
    file.write("Новый отчет")

Если report.txt уже существует, Python выдаст ошибку FileExistsError. Это удобно, когда нельзя случайно стереть старые данные

Создание файла через pathlib

Современный способ работы с путями — модуль pathlib

from pathlib import Path

path = Path("notes.txt")
path.write_text("Привет из pathlib", encoding="utf-8")

write_text() создает файл, если его нет, и записывает текст. Если файл уже существует, содержимое будет заменено

Для чтения можно использовать read_text()

from pathlib import Path

path = Path("notes.txt")
text = path.read_text(encoding="utf-8")
print(text)

pathlib особенно удобен, когда нужно собирать пути к папкам и файлам без ручной склейки строк

Где появится файл

Если указать только имя файла, например notes.txt, файл создастся в текущей рабочей папке. Это не всегда та папка, где лежит скрипт. Рабочая папка зависит от того, откуда вы запустили команду

Проверьте текущую папку так

from pathlib import Path

print(Path.cwd())

Если файл «пропал», скорее всего, он создан не там, где вы ожидали

Как создать файл в конкретной папке

from pathlib import Path

folder = Path("data")
folder.mkdir(exist_ok=True)

path = folder / "notes.txt"
path.write_text("Файл внутри папки data", encoding="utf-8")

mkdir(exist_ok=True) создает папку data, если ее нет. Если папка уже есть, ошибки не будет

Оператор / у Path собирает путь аккуратно для вашей операционной системы

Как записать несколько строк

lines = [
    "Первая строка",
    "Вторая строка",
    "Третья строка"
]

with open("lines.txt", "w", encoding="utf-8") as file:
    for line in lines:
        file.write(line + "\n")

Важно добавлять \n, если каждая строка должна начинаться с новой строки. write() не добавляет перенос автоматически

Как записать числа

write() принимает строку. Если нужно записать число, преобразуйте его через str() или f-строку

score = 95

with open("score.txt", "w", encoding="utf-8") as file:
    file.write(f"Результат: {score}\n")

Если передать число напрямую, будет ошибка TypeError

Мини-практика

Создайте файл todo.txt и запишите в него три задачи

tasks = ["выучить open", "попробовать pathlib", "прочитать файл обратно"]

with open("todo.txt", "w", encoding="utf-8") as file:
    for task in tasks:
        file.write(task + "\n")

После запуска откройте файл в редакторе и проверьте содержимое. Затем измените режим w на a и добавьте еще одну задачу

Частые ошибки

Файл создается не в той папке

Проверьте Path.cwd(). Файл создается в текущей рабочей папке, а не обязательно рядом со скриптом

Забыть encoding=»utf-8″

На русскоязычном тексте лучше явно указывать кодировку, чтобы не ловить проблемы на разных системах

Использовать режим w и случайно стереть файл

Режим w перезаписывает файл. Для добавления используйте a, для защиты от перезаписи — x

Пытаться записать число без str

file.write() принимает строку. Числа нужно преобразовывать

Что почитать дальше по Python

Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x