파일 / 디렉토리 다루기
페이지정보
내용
파이썬에서 파일과 디렉토리를 다루는 함수는 os 모듈에 있다. 따라서 os 함수들을 사용하기 위해서는 os 모듈을 import해야 한다.
import os
용도 | 함수 |
---|---|
현재 작업 폴더 얻기 |
os.getcwd()
|
디렉토리 변경 |
os.chdir("C:\Tmp") |
디렉토리 안의 파일/서브디렉토리 리스트 |
os.listdir("C:\Python37") os.listdir() # 현재 디렉토리 리스트 조회 |
파일의 이름 바꾸기 |
os.rename("abc.txt", "123.txt") # 경로가 다르면 이동과 같은 역할을 한다. |
파일 지우기 |
os.remove("123.txt") |
디렉토리 만들기 |
os.mkdir("test_dir") |
디렉토리 지우기 |
os.rmdir("test_dir") |
특정 경로에 대해 절대 경로 얻기 |
os.path.abspath(".\\Scripts")
|
경로 중 디렉토리명만 얻기 |
os.path.dirname("C:/Python37/Scripts/pip.exe")
|
경로 중 파일명만 얻기 |
os.path.basename("C:/Python37/Scripts/pip.exe")
|
경로 중 디렉토리명과 파일명을 나누어 얻기 | dir, file = os.path.split("C:/Python37/Scripts/pip.exe") |
파일 각 경로를 나눠 리스트로 리턴하기 os.path.sep은 OS별 경로 분리자 |
"C:\Python37\Scripts\pip.exe".split(os.path.sep)
|
경로를 병합하여 새 경로 생성 |
os.path.join('C:\Tmp', 'a', 'b')
|
파일 혹은 디렉토리 경로가 존재하는지 체크하기 | os.path.exists("C:\Python37") |
디렉토리 경로가 존재하는지 체크하기 | os.path.isdir("C:\Python37") |
파일 경로가 존재하는지 체크하기 | os.path.isfile("C:\Python37\python.exe") |
파일의 크기 |
os.path.getsize("C:\Python37\python.exe") |
파일 만든 시간 (유닉스 타임스탬프) | os.path.getctime("C:\Python37\python.exe") |
파일 수정 시간 (유닉스 타임스탬프) | os.path.getmtime("C:\Python37\python.exe") |
파일 엑세스 시간 (유닉스 타임스탬프) | atime = os.path.getatime("C:\Python37\python.exe") |
타임스탬프 년월일 시분초로 표시 | datetime.datetime.fromtimestamp(int(atime)) |
#########################
파일 복사
import shutil
shutil.copy(원본파일, 복사할 파일)
shutil의 copy 방법은 4가지가 있다.
copy, copyfile, copy2, copyfileobj 각 메서드의 차이점은 아래 표와 같다.
Method | 메타데이타 복사 | 퍼미션 복사 | 버퍼사용 |
복사본에 디렉토리명만 적기 |
shutil.copy | X | O | X | O |
shutil.copyfile | X | X | X | X |
shutil.copy2 | O | O | X | O |
shutil.copyfileobj | X | X | O | X |