파이썬의 표준 라이브러리인 os 모듈의 서브모듈인 os.path 모듈은 경로, 파일, 디렉토리에 관련된 유용한 함수들을 제공해준다.
os 모듈 import
os.path 서브모듈을 사용하기 위해 os 모듈을 import 한다.
import os
경로를 다룰 때 자주 사용하는 함수
os.path.join
플랫폼에 따라 올바른 경로 구분자를 사용해 여러 경로 조각을 결합해 하나의 경로를 생성한다.
path = os.path.join("folder", "subfolder", "file.txt")
print(path)
# 리눅스에서 결과: "folder/subfolder/file.txt"
# Windows에서 결과: "folder\subfolder\file.txt"
os.path.exist
주어진 경로가 실제로 존재하는지 여부를 확인하여 파일이나 디렉토리가 존재하면 True, 그렇지 않으면 False를 반환한다.
if os.path.exists("myfile.txt"):
print("파일이 존재합니다.")
else:
print("파일이 존재하지 않습니다.")
os.path.abspath
상대 경로를 절대 경로로 바꾸는데 사용된다. os.path.abspath(".")을 호출하면 현재 작업 디렉토리가 반환되며 os.getcwd()와 동일한 결과를 얻을 수 있다.
absolute_path = os.path.abspath("myfile.txt")
print(absolute_path)
current_directory = os.path.abspath(".")
print(current_directory)
current_directory = os.getcwd()
print(current_directory)
os.path.basename
주어진 경로에서 마지막 부분에 해당하는 파일명 또는 디렉토리 이름을 추출하는 데 사용된다.
filename = os.path.basename("C:\\myfolder\\myfile.txt")
print(filename) # 결과: "myfile.txt"
foldername = os.path.basename("C:\\myfolder")
print(foldername) # 결과: "myfolder"
os.path.dirname
주어진 경로에서 상위 디렉토리 경로만을 반환한다. 보통 파일명을 제외한 경로의 나머지 부분을 추출하는 데 사용된다.
directory = os.path.dirname("C:\\myfolder\\myfile.txt"")
print(directory) # 결과: "C:\myfolder"
os.path.split
경로를 디렉토리 경로와 파일명으로 분리한다.
directory, filename = os.path.split("C:\\myfolder\\myfile.txt")
print(directory) # 결과: "C:\myfolder"
print(filename) # 결과: "myfile.txt"
os.path.splitext
파일명과 확장자를 분리한다.
filename, ext = os.path.splitext("myfile.txt")
print(filename) # 결과: "myfile"
print(ext) # 결과: ".txt"
os.path.isabs
주어진 경로가 절대 경로인지 확인한다.
is_absolute = os.path.isabs("C:\\myfolder\\myfile.txt")
print(is_absolute) # 결과: True
os.path.isdir
주어진 경로가 디렉토리인지 확인한다.
is_directory = os.path.isdir("C:\\myfolder")
print(is_directory) # 결과: True
os.path.isfile
주어진 경로가 파일인지 확인한다.
is_file = os.path.isfile("C:\\myfolder\\myfile.txt")
print(is_file) # 결과: True
실행 중인 스크립트 파일이 위치한 경로 가져오기
현재 작업 디렉토리가 아니라 실행 중인 스크립트 파일이 위치한 경로를 가져오는 방법은 다음과 같다.
1. 특수 변수 __file__ 사용 방법
2. sys.argv[0] 사용 방법
import os
# 현재 실행 중인 파이썬 스크립트의 경로를 나타내는 특수변수 __file__ 을 사용하는 방법
script_path = os.path.abspath(__file__)
script_dir = os.path.dirname(script_path)
print("스크립트가 위치한 경로:", script_dir)
import os
import sys
# sys 모듈을 사용해 첫번째 명령인자를 가져오는 방법
script_path = os.path.abspath(sys.argv[0])
script_dir = os.path.dirname(script_path)
print("스크립트가 위치한 경로:", script_dir)
파일 생성 및 수정 시간 가져오기
os.path.getctime, os.path.getmtime으로 파일 생성 시간과 수정 시간을 확인할 수 있다. 두 함수의 반환값은 UNIX time으로 1970년 1월 1일 00:00:00 이후 경과 시간을 초 단위로 float 타입으로 반환한다.
time.ctime은 UNIX time을 사람이 읽기 쉬운 문자열 형태로 변환하는 역할을 한다.
import os
import time
# 파일 생성 시간 (Windows에서는 파일 생성시간, Unix 계열에서는 파일의 권한/소유권 등 메타데이터가 마지막으로 변경된 시간)
creation_time = os.path.getctime("test.py")
print("Creation time:", time.ctime(creation_time))
# 파일 수정 시간
modification_time = os.path.getmtime("test.py")
print("Modification time:", time.ctime(modification_time))
파일 크기 가져오기
os.path.getsize 함수를 사용하면 파일의 크기를 구할 수 있다. 만약 디렉토리의 크기를 구하고 싶다면 해당 함수를 사용해 디렉토리 내 모든 파일의 크기를 재귀적으로 합산하는 방법을 사용해야 한다.
import os
# 파일 크기
file_size = os.path.getsize("test.py")
print("File size:", file_size, "bytes")
'프로그래밍 > Python' 카테고리의 다른 글
PyInstaller ] 파이썬 스크립트(.py)를 실행파일(.exe)로 만들기 (0) | 2024.08.12 |
---|---|
Tkinter ] Python GUI 프로그래밍 (0) | 2024.06.09 |
Pyside6 ] 개발 환경 설정 with VSCode (0) | 2024.06.08 |
Python ] 코드 실행 시간 ms 단위로 측정하기 + datetime 모듈 사용법 (0) | 2024.06.03 |
Python 기본 문법 (0) | 2024.06.01 |