[Python] 파이썬 파일(디렉토리)처리 총정리: 경로 확인,경로 변경, 파일이름 변경
파이썬에서 현재경로를 확인하거나 경로를 변경하기 위해서는 os모듈을 import 하여 사용합니다.
■현재 경로 확인 : os.getcwd()함수를 사용하여 현재 경로( 현재 폴더 위치)를 확인합니다.
>>> import os
>>>
>>> path = os.getcwd()
>>> print(path)
#실행결과
C:UsersilikeAppDataLocalProgramsPythonPython39
■디렉토리(경로) 변경 방법 : chdir() 함수를 사용합니다.
현재 경로 위치에서 한단계 내려가는 방법
>>> import os
>>> os.chdir("../")
>>> path = os.getcwd()
>>> print(path)
#실행결과
C:UsersilikeAppDataLocalProgramsPython
>>>
■경로(폴더) 위치를 완전히 변경하려면 폴더 개수 만큼 ../를 추가하여 루트 폴더(C:)까지 내려간 후 변경하고자 하는 폴더를 입력합니다. 혹은 다이렉트로 이동합니다.
>>> import os
>>> os.chdir("../../../../../../../python")
>>> path = os.getcwd()
>>> print(path)
>>>
#실행결과
C:python
>>>
>>>
>>>os.chdir("C:python")
>>> path = os.getcwd()
>>> print(path)
>>>
#실행결과
C:python
>>>
■현재 폴더를의 디렉토리 및 파일 리스트 확인하는 방법 (도스 명령어 dir/w와 유사) : os.listdir() 함수를 사용합니다.
>>> import os
>>> os.listdir()
['script', 'Workspace', '새파일.txt']
#변수에 담은후 print문을 사용하여 출력해도 동일한 결과를 얻습니다.
#myfile = os.listdir()
#print(myfile)
#실행결과
['script', 'Workspace', '새파일.txt']
>>>
# script와 Workspace는 디렉토리(폴더) 입니다.
■파일명 제외하고 경로만 가져오는 방법 os.path.dirname()함수를 사용합니다.
>>> os.path.dirname("C:/Users/ilike/AppData/Local/Programs/Python/Python39/python.exe")
#실행결과
'C:/Users/ilike/AppData/Local/Programs/Python/Python39'
#로 접근하면 오류가 발생하였다.
>>>
>>> os.path.dirname("C:UsersilikeAppDataLocalProgramsPythonPython39python.exe")
File "<stdin>", line 1
os.path.dirname("C:UsersilikeAppDataLocalProgramsPythonPython39python.exe")
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated UXXXXXXXX escape
■경로(path)제외하고 파일명만 가져오는 방법 : os.path.basename()함수를 사용한다.
>>> os.path.basename("C:/Users/ilike/AppData/Local/Programs/Python/Python39/python.exe")
'python.exe'
>>>
■파일인지 확인하는 방법 : isfile() 함수를 사용합니다.
>>> os.path.isfile("C:/Users/ilike/AppData/Local/Programs/Python/Python39/python.exe")
True
>>> os.path.isfile("C:/Users/ilike/AppData/Local/Programs/Python/Python39/")
False
>>>
■디렉토리(폴더)인지 체크 하는 방법 : isdir() 함수를 사용합니다. 존재하지 않는 경로를 체크하는 용도로도 활용하면 좋습니다. 디렉토리가 존재하고 맞다면 True를 리턴합니다.
>>> os.path.isdir("C:/Users/ilike/AppData/Local/Programs/Python/Python39/")
True
>>>
>>> os.path.isdir("C:/Users/ilike/AppData/Local/Programs/Python/Python39/python.exe")
False
>>>
■파일 경로에서 폴더와 파일명을 분리하는 방법 : os.path.split()함수를 사용합니다.
>>> dir, file = os.path.split("C:/Users/ilike/AppData/Local/Programs/Python/Python39/python.exe")
>>> print(dir)
C:/Users/ilike/AppData/Local/Programs/Python/Python39
>>>
>>> print(file)
python.exe
>>>
■파일 또는 디렉토리 경로 존재 유무 확인하는 방법 : os.path.exists()함수를 사용합니다.
>>> #폴더 존재여부 체크
>>> os.path.exists("C:Python39")
False
>>>
>>>
>>>#파일존재유무 확인
>>> os.path.exists("C:/Users/ilike/AppData/Local/Programs/Python/Python39/python.exe")
True
>>>
■파일의 크기를 체크하는 방법 : os.path.getsize()함수를 사용합니다.
>>> os.path.getsize("C:/Users/ilike/AppData/Local/Programs/Python/Python39/python.exe")
100368
>>>
■ 파일 또는 경로를 합치는 방법 : os.path.join()함수를 사용합니다.
>>>
>>> os.path.join("C:/Users/ilike/AppData/Local/Programs","Python")
'C:/Users/ilike/AppData/Local/Programs\Python'
>>>
■파일명과 확장자를 분리하는 방법 : os.path.splitext()함수를 사용합니다.
>>> name, ext = os.path.splitext("python.exe")
>>> print("파일명:", name)
파일명: python
>>>
>>> print("확장자:", ext)
확장자: .exe
>>>
■파일이름을 변경하는 방법 : os.reanme()함수를 사용합니다. 주의할 점은 반드시 파일경로와 파일명 그리고 확장자 까지 모두 포함해야합니다. 그리고 변경할 대상의 파일명의 경우 경로를 포함하지않고 파일명만 포함하게되면 임의의 폴더에 파일이 저장됩니다.
import os
print('-'*30)
file_list = os.listdir("C:/python/test/folder1")
print(file_list)
print('-'*30)
os.renames("C:/python/test/folder1/newfile.txt", "C:/python/test/folder1/newfile_22222.txt")
#os.renames("C:/python/test/folder1/newfile.txt", "test.txt")
print('-'*30)
file_list = os.listdir("C:/python/test/folder1")
print(file_list)
print('-'*30)
#실행결과
C:UsersilikeAppDataLocalProgramsPythonPython39python.exe C:/python/Workspace/main.py
------------------------------
['newfile.txt', 'sample - 복사본.txt', 'sample.txt']
------------------------------
------------------------------
['newfile_22222.txt', 'sample - 복사본.txt', 'sample.txt']
------------------------------
[REFERENCE]
docs.python.org/3/library/os.html?highlight=os%20rename#os.rename
docs.python.org/3/search.html?q=os.path
pythonstudy.xyz/python/article/507-%ED%8C%8C%EC%9D%BC%EA%B3%BC-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC
[파이썬 더 알아보기]
[프로그래밍/Python] - [Python] 파이썬 기본(기초) 문법 : 예제 및 총정리
[프로그래밍/Python] - [Python] 파이썬 list, tuple, dictionary,set 예제 및 총정리
[프로그래밍/Python] - [Python] 파이썬 클래스(class) 와 생성자(__init__) 사용방법 및 예제 총정리
[프로그래밍/Python] - [Python] 파이썬 소수점 반올림, 돈 표기 방법 : 천단위 콤마(쉼표) 찍기( 천단위 구분 기호 추가), 숫자 콤마 제거