目次
1. 현재 디렉터리란?
Python에서의 현재 디렉터리란 현재 작업 디렉터리(폴더)를 의미합니다。프로그램이 실행되는 동안 이 디렉터리를 기준으로 파일 읽기/쓰기나 각종 작업이 수행됩니다。예를 들어 스크립트에서 파일을 열려고 할 때 현재 디렉터리가 올바르게 설정되어 있지 않으면 파일을 찾지 못해 오류가 발생할 수 있습니다。현재 디렉터리의 역할
Python에서는 파일을 읽어들이거나 새 파일을 생성할 때 현재 디렉터리가 중요한 역할을 합니다。파일 작업이 프로그램의 중심이 되는 경우, 현재 디렉터리의 확인과 변경이 정확히 이루어지고 있는지 여부는 프로그램의 동작에 큰 영향을 미칩니다。2. Python에서 현재 작업 디렉터리를 가져오는 방법
현재 작업 디렉터리를 가져오려면,os 모듈과 pathlib 모듈이라는 두 가지 방법이 있습니다. 상황에 맞게 구분해 사용하면 유연한 디렉터리 작업이 가능합니다。2.1 os 모듈을 사용한 현재 작업 디렉터리 가져오기
os 모듈은 Python 표준 라이브러리로, OS에 의존하는 작업을 수행하기 위한 유용한 도구입니다. 현재 작업 디렉터리를 가져오려면 os.getcwd()를 사용합니다。import os
current_directory = os.getcwd()
print(current_directory)이 코드를 실행하면 현재 작업 디렉터리가 절대 경로로 표시됩니다. 예를 들어 작업 환경이「/home/user/MyPythonProject」라면 그 경로가 표시됩니다. 이 기능은 스크립트가 올바른 디렉터리에서 실행되고 있는지 확인할 때 유용합니다。2.2 pathlib 모듈을 사용한 현재 작업 디렉터리 가져오기
Python 3.4 이후 도입된 pathlib 모듈은 파일 시스템을 보다 직관적으로 다룰 수 있도록 설계되었습니다. pathlib.Path.cwd()를 사용하면 현재 작업 디렉터리를 Path 객체로 가져올 수 있습니다。from pathlib import Path
current_directory = Path.cwd()
print(current_directory)Path 객체는 디렉터리 계층을 다룰 때 매우 유용합니다. 또한 이 객체를 활용하여 복잡한 경로 조작이나 파일 작업을 수행할 수 있습니다. 예를 들어 경로를 연결하거나 파일의 존재 여부를 쉽게 확인할 수 있습니다。
3. Python에서 현재 작업 디렉터리를 변경하는 방법
Python에서 현재 작업 디렉터리를 변경하면 다른 디렉터리 내의 파일을 조작할 수 있게 됩니다. 이로써 프로그램의 동작 범위가 넓어지고, 유연한 파일 관리가 가능해집니다.3.1 os 모듈을 사용한 현재 작업 디렉터리 변경
현재 작업 디렉터리를 변경하려면 os.chdir()를 사용합니다. 이를 통해 새 디렉터리로 쉽게 이동할 수 있습니다. 아래 코드는 현재 작업 디렉터리를 /home/user/NewDirectory로 변경하는 예입니다.import os
os.chdir('/home/user/NewDirectory')
print(os.getcwd())이 예에서는 새 디렉터리로 이동하고, 이동 후의 현재 작업 디렉터리가 올바르게 반영되었는지 확인할 수 있습니다.3.2 pathlib 모듈을 함께 사용하는 디렉터리 작업
pathlib 모듈 자체에는 현재 작업 디렉터리를 변경하는 기능이 없지만, os.chdir()와 함께 사용하면 편리합니다. 예를 들어, 아래 코드에서는 pathlib을 사용해 새 디렉터리를 Path 객체로 다루고, os.chdir()로 이동합니다.from pathlib import Path
import os
new_directory = Path('/home/user/NewDirectory')
os.chdir(new_directory)
print(Path.cwd())이 방법을 사용하면 Path 객체를 활용하면서 현재 작업 디렉터리를 변경할 수 있습니다.4. 현재 디렉터리 내의 파일 목록을 가져오기
현재 디렉터리에 어떤 파일이나 폴더가 있는지 확인하고 싶다면,os.listdir()를 사용하면 편리합니다. 이 함수를 사용하면 지정된 디렉터리 내의 모든 파일과 폴더 이름이 리스트로 반환됩니다.import os
current_directory = os.getcwd()
files = os.listdir(current_directory)
print(files)이 코드는 현재 디렉터리의 모든 파일과 폴더를 리스트 형태로 표시합니다. 파일 목록을 가져오면 디렉터리의 내용을 확인하고, 다음 파일 작업으로 진행할 수 있습니다.5. 현재 작업 디렉터리 관련 문제 해결
현재 작업 디렉터리를 다루는 동안 프로그램이 예기치 않은 오류를 내는 경우가 있습니다. 특히 스크립트 실행 중에 현재 작업 디렉터리가 의도한 위치와 다르거나, 파일이 존재하지 않는 오류가 발생하는 일이 자주 있습니다。자주 발생하는 문제와 해결 방법
- 스크립트가 의도한 디렉터리에서 실행되지 않는다 이 문제에 대처하려면 스크립트의 앞부분에서
os.getcwd()를 사용해 현재 작업 디렉터리를 확인하는 것이 중요합니다. 다른 위치에 있다면os.chdir()로 수정합니다。 - 파일을 찾을 수 없음 오류 (FileNotFoundError) 이는 파일 경로가 올바르게 지정되지 않았을 때 발생합니다. 이 문제를 방지하려면
os.path.abspath()를 사용해 파일의 절대 경로를 확인하는 것이 효과적입니다。
import os
file_path = os.path.abspath('myfile.txt')
print(file_path)이로써 파일의 절대 경로가 표시되어, 경로 지정 실수로 인한 오류를 방지할 수 있습니다。6. 정리
Python에서 현재 디렉터리를 다루는 작업은 파일의 읽기/쓰기와 관리에 있어 매우 중요한 요소입니다。os 모듈과 pathlib 모듈을 적절히 구분해 사용하는 방법을 익히면 디렉터리 작업의 효율이 크게 향상됩니다. 정확하게 현재 디렉터리를 가져오고 변경하면 프로그램의 신뢰성과 효율이 향상되고, 문제를 미연에 방지할 수 있습니다。


