Чтобы создать файл, если он не существует в Python, вы можете использовать функцию open(). Функция open() открывает файл и возвращает его как файловый объект. Она принимает путь к файлу и режим в качестве входных данных и возвращает объект в качестве выходных данных.
Синтаксис open()
|
1 |
open(file, mode) |
Аргументы
- file: это путь и имя файла.
- mode: функция open() принимает один из следующих режимов:
- w: это для режима записи.
- r: для режима чтения.
- a: режим добавления.
- w+: создать файл, если он не существует, и открыть его в режиме записи.
- r+: открыть файл в режиме чтения и записи.
- a+: создать файл, если он не существует, и открыть его в режиме добавления.
Это различные режимы, которые вы можете использовать при создании нового файла.
Если вы передаете +, добавьте текст в файл или сначала создайте его, если он не существует.
Режим w+ усекает файл, а затем открывает его в режиме записи, поэтому, если мы не хотим, чтобы файл был обрезан, мы должны использовать режим a+.
|
1 |
file = open('data.py','a+') |
Если вы запустите приведенный выше код, он создаст файл с именем data.py. Ранее этого файла не существовало, но он был создан после того, как мы запустили код. Если файл существует и уже имеет содержимое, то + не удалит содержимое. Чтобы обрезать файл при создании нового файла, используйте режим w+ в функции open().
Мы пишем код внутри файла data.py, а затем запускаем файл app.py в режиме w+.
|
1 |
file = open('data.py','w+') |
Если вы запустите приведенный выше код, он урежет файл.
w обрезает существующий файл. docs: Режимы ‘r+’, ‘w+’ и ‘a+’ открывают файл для обновления.
Следует отметить, что + создает файл, если он не существует, и, что особенно важно, ищет файл до конца. Поэтому, если вы сделаете чтение сразу после открытия таким образом, вы ничего не получите.
Создание файла, если он не существует, с помощью touch()
Есть еще один способ создать файл, если он не существует, используя метод touch() модуля pathlib. Метод path.touch() создает файл по указанному пути.
|
1 2 3 4 5 |
from pathlib import Path fle = Path('data.py') fle.touch(exist_ok=True) f = open(fle) |
Если файл уже существует, то он ничего не сделает. В противном случае будет создан новый файл.
