Создание и сохранение файлов в новом каталоге в Python

Бизнес

В следующих разделах объясняется, как создать и сохранить новый файл в Python, используя новый каталог (папку) в качестве места назначения.

  • Ошибка при указании несуществующего каталога с помощью open()(FileNotFoundError)
  • os.makedirs()Создайте каталог
  • Пример кода для создания нового файла с местом назначения

Ниже приведен пример текстового файла.

При хранении изображений зависит от библиотеки, можно ли указать путь, включающий несуществующий каталог (или она автоматически создаст его, если он не существует).
FileNotFoundErrorЕсли возникает эта ошибка, вы можете создать новый каталог с помощью os.madeirs() перед выполнением функции для сохранения, как в следующем примере.

Ошибка при указании несуществующего каталога с помощью open()(FileNotFoundError)

При создании нового файла с помощью встроенной функции open() возникает ошибка, если в качестве первого аргумента в качестве назначения указан путь, содержащий новый каталог (несуществующий каталог).(FileNotFoundError)

open('not_exist_dir/new_file.txt', 'w')
# FileNotFoundError

Первым аргументом open() может быть абсолютный путь или путь относительно текущего каталога.

О базовом использовании open(), таком как создание нового файла в существующем каталоге, перезапись или добавление к существующему файлу, читайте в следующей статье.

Создайте каталог(os.makedirs())

При создании нового файла в несуществующем каталоге, необходимо создать каталог перед open().

Если вы используете Python 3.2 или более позднюю версию, удобно использовать os.makedirs() с аргументом exist_ok=True. Даже если целевой каталог уже существует, ошибки не возникнет, и каталог может быть создан сразу.

import os

os.makedirs(new_dir_path, exist_ok=True)

Если у вас старая версия Python и в os.makedirs() нет аргумента exist_ok, вы получите ошибку, если укажете путь к директории, которая существует, поэтому используйте os.path.exists(), чтобы сначала проверить существование директории.

if not os.path.exists(new_dir_path):
    os.makedirs(new_dir_path)

Подробности см. в следующей статье.

Пример кода для создания нового файла с местом назначения

Ниже приведен пример кода функции, которая создает и сохраняет новый файл, указывая каталог назначения.

Первый аргумент dir_path — путь к директории назначения, второй аргумент filename — имя нового создаваемого файла, третий аргумент file_content — содержимое для записи, каждый из которых задается в виде строки.

Если указанный каталог не существует, создайте новый.

import os

def save_file_at_dir(dir_path, filename, file_content, mode='w'):
    os.makedirs(dir_path, exist_ok=True)
    with open(os.path.join(dir_path, filename), mode) as f:
        f.write(file_content)

Используйте следующим образом.

save_file_at_dir('new_dir/sub_dir', 'new_file.txt', 'new text')

В этом случае файл new_file.txt с содержанием «новый текст» будет создан в new_dir\sub_dir. Другими словами, будет создан следующий файл.new_dir/sub_dir/new_file.txt

Конкатенация имен каталогов и файлов с помощью os.path.join().

Также в качестве аргумента указывается режим работы open(). Для текстовых файлов подходит значение по умолчанию 'w', но если вы хотите создать двоичный файл, задайте mode='wb'.

Copied title and URL