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 이상을 사용하는 경우에는 exist_ok=True 인수와 함께 os.makedirs()를 사용하는 것이 편리합니다. 대상 디렉터리가 이미 존재하더라도 오류가 발생하지 않으며 디렉터리를 한 번에 생성할 수 있습니다.

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 text”인 new_file.txt 파일이 new_dir\sub_dir에 생성됩니다. 즉, 다음과 같은 파일이 새로 생성됩니다.new_dir/sub_dir/new_file.txt

os.path.join()을 사용하여 디렉토리와 파일 이름을 연결합니다.

또한 open()의 모드가 인수로 지정됩니다. 텍스트 파일의 경우 기본 ‘w’가 좋지만 바이너리 파일을 생성하려면 mode=’wb’로 설정합니다.