JSITCLUB

파이썬 - 폴더 , 파일 및 경로 작업정리 본문

파이썬/활용

파이썬 - 폴더 , 파일 및 경로 작업정리

jsitclub 2021. 10. 26. 11:35

프로그램을 작성 하다보면 폴더나 파일을 복사하거나 이동 하며 정리하는 작업을 하는경우도 있고 파일의 경로나 폴더 경로를 가져와야 하는 경우가 종종 있습니다. 

그래서 파이썬에서 사용하는 관련 내용들을 정리 해봤습니다.

물론 경로가 문자열 이므로 문자열의 연산이나 파이썬의 문자열 메서드로 가공해서 처리 할 수도 있지만, os 의 path를 이용하는 방법을 정리했습니다.

 

 

 

1. 경로 관련

현재 실행파일 경로 가져오기

__file__

 

주어진 경로의 폴더경로 가져오기

os.path.dirname()

 

주어진 경로의 파일명 가져오기

os.path.basename()

 

import os
# 현재실행되는 파이썬 파일의 경로
print(__file__)

# 실행 파이썬 파일의 경로만 가져오기
print(os.path.dirname(__file__))

# 실행 파이썬 파일의 파일명(확장자포함) 가져오기
print(os.path.basename(__file__))

# 실행되는 터미널에서의 위치(cmd 창에서의 프롬프트 위치)
print(os.getcwd())


# 다른 예제
a="C:\\Users\\JSITCLUB\\Documents\\images\\test.jpg"
print(os.path.dirname(a))
print(os.path.basename(a))

 

새로운 경로를 만들기

os.path.join()

 

절대경로로 표현

os.path.abspath()

 

상위폴더(부모폴더) 표현

os.path.pardir  또는 ".."

import os.path as p

print(p.join("aaa","bbb","ccc"))

#하위폴더 추가된 경로
print(p.join("C:\\","ddd"))

print(p.join(p.dirname(__file__),"ddd"))


#상위폴더 경로 #1
print(p.abspath(p.join(p.dirname(__file__),"..")))

#상위폴더 경로 #2
print(p.abspath(p.join(p.dirname(__file__),p.pardir)))

#한레벨 더 위의 경로
print(p.abspath(p.join(p.dirname(__file__),p.pardir,p.pardir)))

 

이정도면 경로를 표현하는것은 거의 가능할것으로 생각됩니다. (혹시 자주사용하는데, 빠진것이 있으면 계속 추가 하겠습니다.

 

2.파일 관련 모듈의 메서드

파일 존재여부 확인(있으면 True)

os.path.exists() -> bool

 

파일 복사

shutil.copy(원본이름,사본이름)

 

import os.path as p
import shutil

# 파일존재여부 있으면 True
print(p.exists("result.txt"))

# 파일복사(원본이름,사본이름)
shutil.copy("result.txt","result_copy.txt")

 

 

 

 

 

Comments