다음 섹션에서는 새 디렉터리(폴더)를 대상으로 사용하여 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’로 설정합니다.