파이썬 파일과 경로지정

임승환·2024년 12월 4일

Python

목록 보기
15/20

디렉토리 관련해서는 잊을만하면 찾는 것 같다. 디버깅을 위해(보통 github actions이나 Jenkins등에서 오류날 때..) Print를 찍다 보니, 한번쯤은 정리해두는게 좋을 것 같아 정리한다!
외워서 바로 적용한다고 하진 않았다

현재 작업 폴더 얻기

print(os.getcwd())

디렉토리 변경

# os.chdir(path), path는 문자열
os.chdir("/Users")
print(os.getcwd()) # /Users

특정 경로에 대해 절대 경로 얻기

# os.path.abspath(path)
print(os.path.abspath("web-crawler-py/parsed_data"))
# /Users/evan/dev/python/web-crawler-py/parsed_data/web-crawler-py/parsed_data

경로 중 디렉토리명만 얻기

# os.path.dir(path)
print(os.path.dirname("/Users/evan/dev/python/web-crawler-py/parsed_data"))
# Users/evan/dev/python/web-crawler-py

경로 중 파일명만 얻기

# os.path.basename(path)
print(os.path.basename("/Users/evan/dev/python/web-crawler-py/parsed_data"))
# parsed_data

경로 중 디렉토리명과 파일명 나누어 얻기

# os.path.split(path) 디렉토리명, 파일명이 리스트 형태로 나온다.
dir, file = os.path.split("/Users/evan/dev/python/web-crawler-py/parsed_data")
print(dir, file, sep="\n")
# /Users/evan/dev/python/web-crawler-py
# parsed_data

파일 경로를 리스트로 얻기

# 파일 경로를 os.path.sep(OS별 파일 경로 나눈 문자)를 이용해 split 한다.
print("/Users/evan/dev/python/web-crawler-py/parsed_data".split(os.path.sep))
# ['', 'Users', 'evan', 'dev', 'python', 'web-crawler-py', 'parsed_data']

경로를 병합해 새 경로 생성

# os.path.join(path, path1, path2, ...) 넘겨준 path들을 묶어 하나의 경로로 만듦
print(os.path.join("/Users/evan/dev/python/web-crawler-py/parsed_data", "test"))
# /Users/evan/dev/python/web-crawler-py/parsed_data/test

디렉토리 안의 파일/서브 디렉토리 리스트

# os.listdir(path) path 하위에 있는 파일, 디렉토리 리스트를 보여준다.
print(os.listdir("/Users/evan/dev/python/web-crawler-py/parsed_data"))

파일 혹은 디렉토리가 존재하는지 체크

# os.path.exists(path)
print(os.path.exists("/Users/evan/dev/python/web-crawler-py/parsed_data"))

디렉토리가 존재하는지 체크

# os.path.isdir(path)
print(os.path.isdir("/Users/evan/dev/python/web-crawler-py/parsed_data"))

파일이 존재하는지 체크

# os.path.isfile(path)
print(os.path.isfile("/Users/evan/dev/python/web-crawler-py/parsed_data"))

파일의 크기

# os.path.getsize(path)
print(os.path.getsize("/Users/evan/dev/python/web-crawler-py/parsed_data"))

참고사이트
https://itmining.tistory.com/122

profile
주니어 개발자

0개의 댓글