Python에서 작업 디렉토리 변경

Rayven Esplanada 2021년7월18일
Python에서 작업 디렉토리 변경

이 기사에서는 현재 작업 디렉토리를 Python에서 다른 위치로 변경하는 방법에 대해 설명합니다.

os 모듈을 사용하여 Python에서 디렉토리 변경

어떤 이유로 명령 콘솔 대신 Python을 통해 작업 디렉토리를 변경하려고한다고 가정합니다. 이 경우 os 모듈은 Python을 통해 직접 기타 운영 체제 유틸리티를위한 도구를 제공합니다.

import os

현재/Users/user의 작업 디렉토리에 있고Users/user2로 변경하고 싶다고 가정 해 보겠습니다. 먼저 os.getcwd()의 결과를 출력하여 현재 작업 디렉토리를 확인하십시오. 다음은 os.chdir("Users/user2") 블록을 호출하여 현재 작업 디렉토리를 전환하는 것입니다.

print(os.getcwd())
os.chdir("/Users/user2")
print(os.getcwd())

출력:

/Users/user
/Users/user2

프로그램이 작업 디렉토리를user에서user2로 성공적으로 전환했는지 확인합니다.

예외 확인

경로는 사용자가 입력하므로 입력 오류가 발생할 가능성이 높습니다. 예를 들어, 사용자가 존재하지 않는 경로를 입력합니다. 이 함수는 FileNotFound 예외가 발생하기 쉽습니다. 이를 감안할 때 예외 검사를 구현해야합니다.

if-else를 사용하여 오류 확인

이를 수행하는 간단한 방법은if-else를 사용하여 지정된 경로가 존재하는지 확인하는 것입니다.

import os


def changeDir(newPath):
    if os.path.exists(newPath):
        os.chdir("Directory moved: ", newPath)
        print(os.getcwd())
    else:
        print("Directory ", newPath, " not found.")


print("Base directory: ", os.getcwd())
changeDir("/Users/user2")
changeDir("/Users/nonexistentpath")

/Users/user2가 기존 파일 경로이고/Users/nonexistentpath가 존재하지 않는다고 가정합니다.

출력:

Base directory:  /Users/user
Directory moved:  /Users/user2
Directory  Users/nonexistentpath  not found.

경로가 존재하기 때문에changeDir()블록에 대한 첫 번째 호출은if 문을 통과했습니다. 반면에 두 번째는 else를 거쳐 경로가 존재하지 않기 때문에 오류와 같은 메시지를 출력합니다.

try...except를 사용하여 오류 확인

os.chdir()명령이 파일 경로를 찾지 못하면FileNotFoundError 알림이 발생합니다. 이것을 잡으려면try...except 블록을 코드로 감쌀 필요가 있습니다.

import os


def changeDir(newPath):
    try:
        os.chdir(newPath)
        print("Directory moved:  newPath")
    except OSError:
        print("Directory ", newPath, "does not exist.")


print("Base directory: ", os.getcwd())
changeDir("/Users/user2")
changeDir("/Users/nonexistentpath")

출력:

Base directory:  /Users/user
Directory moved:  /Users/user2
Directory  Users/nonexistentpath  does not exist.

둘 다 동일한 출력을 생성합니다. 그러나try...except 예외 처리를 사용하는 것이if-else 문을 사용하는 것보다 훨씬 안전합니다. 사용자 정의 조건이 파일 경로 조작을 처리 할 때 발생할 수있는 가능한 모든 예외를 포함하지 않을 수 있기 때문입니다.

요약하면os 모듈은 제공하는 다른 유틸리티 중에서 파일 및 디렉토리 조작에 대한 광범위한 지원을 제공합니다.

os.chdir()블록을 사용하여 작업 디렉토리를 직접 변경할 수 있지만 예외가 발생하지 않도록if-else 또는try...except 블록을 감싸는 것이 더 안전합니다.

파일 조작에 대해 자세히 알아 보려면 예외 처리 및 파일 이름 또는 콘텐츠 업데이트가 매우 중요합니다.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

관련 문장 - Python Directory