os
os.getcwd() : 파이썬 현재 작업중인 경로 불러오기
os.getcwd()
#C:\Program Files\Python39
os.chdir(변경할 경로) : 현재 작업중인 경로 변경하기
os.chdir("C:/Users/PLAYHOOS/")
os.listdir(경로) : 경로 내의 폴더/파일 리스트를 가져옴
dir = 'C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley\Mods'
os.listdir(dir)
#['폴더명',...'파일명']
os.makedirs(경로/폴더명) : 지정 경로에 폴더 생성
os.makedirs('C:/Prj/폴더명')
os.path
os.path.abspath(경로) : 절대경로 가져오는 함수
절대경로 : 최상위 디렉터리가 포함된 경로
dir = __file__
os.path.abspath(dir)
#C:\Users\JESS\PycharmProjects\mystudy\main_py.py
os.path.relpath(경로) : 상대경로 가져오는 함수
상대경로 : 현재 위치 기준 해당 파일(폴더)까지의 상대경로
dir = __file__
os.path.relpath(dir)
#PycharmProjects\mystudy\main_py.py
os.path.normpath(경로)) : 경로명 정규화하기
중복 구분자와 상위참조를 접어 경로명을 정규화시켜 반환함
dir = 'A/B/../C//D/'
os.path.normpath(dir))
#A\C\D
os.path.basename(경로) : 경로의 마지막 값 가져오기
normpath로 정규화해서 가져오지 않을 경우 마지막 경로가 / 로 끝나면 '' 이 반환됨
dir = 'A/B/../C//D/'
os.path.basename(os.path.normpath(dir))
#D
os.path.exists(디렉터리/파일 경로) : 디렉터리/파일이 존재하는지 확인
존재할 경우 True, 존재하지 않을 경우 False 반환
fakedir = 'A/B/../C//D/'
dir = 'C:\Program Files\Python39'
os.path.exists(fakedir)
os.path.exists(dir)
#fakedir : False / dir = True
os.path.isdir(디렉터리 경로) : 디렉터리가 존재하는지 확인
존재할 경우 True, 존재하지 않을 경우 / 디렉터리 경로가 아닐 경우 False 반환
dir2 = 'C:\Program Files\Python39'
dir3 = 'Foo/Bar'
os.path.isdir(dir2)
os.path.isdir(dir3)
#dir2 : True / dir3 : False
os.path.isfile(파일 경로) : 파일이 존재하는지 확인
존재할 경우 True, 존재하지 않을 경우 / 파일경로가 아닐 경우 False 반환
dir = __file__
dir2 = 'C:\Program Files\Python39'
os.path.isfile(dir)
os.path.isfile(dir2)
#dir : True / dir2 : False
os.path.dirname(경로) : 경로의 상위경로 반환
dir = 'C:\Program Files\Python39'
os.path.dirname(dir)
#C:\Program Files
os.path.join(합칠경로1, 합칠경로2) : 경로 합치기
os.path.join('A','B','C')
#A\B\C
os.path.expanduser('~') / os.getenv('userprofile') : 홈 디렉토리 경로 얻기
둘다 결과는 똑같음
os.path.expanduser('~')
os.getenv('userprofile')
#C:\Users\PLAYHOOS
glob.glob
glob.glob(경로/설정) : 경로 내의 설정한 폴더/파일 리스트를 가져옴
설정에 따라서 하위폴더만 / 특정 파일만 가져올 수 있음
하위의 모든 폴더/파일 가져오기
#dir : 폴더경로
glob.glob('dir/*')
하위의 폴더만 가져오기
glob.glob('dir/**/')
하위의 하위폴더들까지 가져오기
glob.glob('./**/', recursive=True)
하위의 특정 확장자만 가져오기
glob.glob('dir/*.py')
특정 확장자 파일 하위의 하위폴더들까지 찾아서 가져오기
glob.glob('dir/**/*.py', recursive=True)
#['dir\\test.py', 'dir\\ui.py', 'dir\\subdir\\t2.py']
특정 문자열을 포함하는 결과 찾기
glob.glob('dir/[0-9]*')
#['dir\\2.txt']
특정 길이 문자 찾기(길이수만큼 ? 넣기)
glob.glob('dir/?.*')
#['dir\\2.txt']
shutil
shutil.rmtree(폴더경로) : 해당 경로 폴더 삭제
shutil.rmtree(dir)
shutil.move(옮길대상, 옮길위치) : 파일/폴더 옮기기
폴더를 옮길 경우 폴더 안의 내용물도 같이 옮겨집니다.
옮길폴더가 없는 폴더라면, 원래폴더의 이름이 바뀌는 것과 똑같은 결과가 나타납니다.
예) shutil.move('AA', 'BB') / BB가 있다면 결과는 BB/AA 가 되지만 없다면 AA->BB 가 됩니다.
#파일 옮기기
shutil.move(옮길파일, 옮길폴더)
#폴더 옮기기
shutil.move(원래폴더, 옮길폴더)
shutil.copy(복사할 파일명, 복사할 위치) : 파일을 특정 위치로 복사하기
복사할 위치에 동일한 파일이 있을 경우 파일이 덮어씌워지니 주의하세요
shutil.copy('dir/2.txt', 'dir/bb')
shutil.copytree('복사할폴더명', '복사될폴더명') : 폴더를 특정 위치로 복사하기
복사할 위치에 동일한 폴더가 있을 경우 오류가 발생합니다.
하위 파일들도 전부 복사됩니다.
shutil.copytree('dir/bb', 'dir/aa')
'개발 > PyQt&Python' 카테고리의 다른 글
파이썬 zipfile 모듈(python 압축파일 다루는 방법) (0) | 2022.11.24 |
---|---|
PyQt tablewidget에 checkbox 추가 / 정렬되게 만들기 (0) | 2022.11.11 |
PyQt 하이퍼링크(QLabel, QPushButton) 달기, 스타일 변경 (0) | 2022.11.09 |
PyQt pdf파일 drag/drop으로 가져오기 (0) | 2022.11.08 |
PyInstaller - 파이썬 exe파일 만드는 방법(아이콘,파일,이미지 추가하기) (0) | 2022.11.06 |
댓글