programing

Python pathlib은 존재하지 않는 디렉토리를 만듭니다.

oldcodes 2023. 6. 13. 22:47
반응형

Python pathlib은 존재하지 않는 디렉토리를 만듭니다.

파일을 저장할 경로를 지정하고 해당 경로에 없는 디렉터리를 만들려면 한 줄의 코드에서 pathlib 라이브러리를 사용하여 이 작업을 수행할 수 있습니까?

예, 다음과 같습니다.

pathlib.Path('/tmp/sub1/sub2').mkdir(parents=True, exist_ok=True)

문서에서:

부모가 이면 필요에 따라 이 경로의 누락된 부모가 생성됩니다. 모드를 고려하지 않고 기본 권한으로 생성됩니다(POSIX 모방).mkdir -p명령).

부모가 거짓인 경우(기본값), 누락된 부모가 발생합니다.FileNotFoundError.

exist_ok이 false이면(기본값),FileExistsError대상 디렉터리가 이미 있는 경우 상승됩니다.

exist_ok이 참이면FileExistsError예외는 무시됩니다(POSIX와 동일한 동작).mkdir -p마지막 경로 구성 요소가 디렉터리가 아닌 기존 파일이 아닌 경우에만 명령을 실행할 수 있습니다.

이렇게 하면 경로가 이미 존재하는 경우에 대한 추가 제어가 제공됩니다.

path = Path.cwd() / 'new' / 'hi' / 'there'
try:
    path.mkdir(parents=True, exist_ok=False)
except FileExistsError:
    print("Folder is already there")
else:
    print("Folder was created")

윔의 답변에 추가.경로 끝에 디렉터리로 만들지 않을 파일이 있는 경우.

즉, '/existing_dll/not_existing_dll/another_dll/a_file'

그런 다음 PurePath.parents를 사용합니다.하지만 좋은 점은 Paths가 Pure Paths의 속성을 상속하기 때문에 다음과 같은 작업을 수행할 수 있다는 것입니다.

filepath = '/existing_dir/not_existing_dir/another_dir/a_file'
pathlib.Path(filepath).parents[0].mkdir(parents=True, exist_ok=True)

존재하지 않는 dirs/파일을 생성하는 범용 기능

def check_and_create_path(self, path: Path):
        path_way = path.parent if path.is_file() else path

        path_way.mkdir(parents=True, exist_ok=True)

        if not path.exists():
            path.touch()

언급URL : https://stackoverflow.com/questions/50110800/python-pathlib-make-directories-if-they-don-t-exist

반응형