Python

[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] 파이썬 문자열 함수 사용 예제 및 총정리 : split,join,replace,rstrip,lstrip,lower,upper,index,count,len

[프로그래밍/Python] - [Python] 파이썬 list, tuple, dictionary,set 예제 및 총정리

[프로그래밍/Python] - [Python] 파이썬 클래스(class) 와 생성자(__init__) 사용방법 및 예제 총정리

[프로그래밍/Python] - [Python] 파이썬 랜덤 숫자 뽑기 난수 발생(random) 예제 총정리 : randint(), randrange(), uniform(), shuffle(), choice(), choices(), simple()

[프로그래밍/Python] - [Python] 파이썬 파일 생성(txt) 및 읽기 쓰기(I/O) 예제 : open(), close(), write(), with(), readline(), read(), readlines()

[프로그래밍/Python] - [Python] 파이썬 소수점 반올림, 돈 표기 방법 : 천단위 콤마(쉼표) 찍기( 천단위 구분 기호 추가), 숫자 콤마 제거

 

 

Leave a Reply

error: Content is protected !!