os 모듈은 내 컴퓨터의 디렉터리(폴더)나 경로, 파일 등을 활용하게 도와주는 모듈로 활용빈도가 굉장히 높다.
1. os.getcwd() : 현재 작업 디렉토리(폴더) 확인
os.getcwd()
[Output]
'C:\\Users\\EUN\\Desktop\\'
2. os.chdir() : 현재 작업 디렉토리 변경(위치 변경)
os.chdir("D:/")
os.getcwd()
[Otuput]
'D:\\'
3. os.listdir() : 입력 경로 내의 모든 파일과 폴더명 리스트 반환
os.listdir("C:/Users/User/Desktop")
[Output]
['개인자료',
'공모전 자료',
'공유자료']
폴더는 폴더명, 파일은 확장자명도 함께 출력된다.
4. os.mkdir() : 폴더 생성
os.mkdir("C:/Users/User/Desktop/test")
os.listdir("C:/Users/User/Desktop/")
[Output]
['개인자료',
'공모전 자료',
'공유자료',
'test']
입력 경로의 마지막의 디렉토리 명으로 폴더를 생성하며, 중복의 경우 에러 발생
5. os.makedirs() : 모든 하위 폴더 생성
경로의 제일 마지막에 적힌 폴더 하나만 생성하는 os.mkdir()과 달리,
os.makedirs()함수는 경로의 모든폴더를 만들어 준다.
os.makedirs("C:/Users/ EUN/Desktop/test/a/b")
6. os.remove() os.unlink() : 파일 삭제
print(os.listdir("C:/Users/EUN/Desktop/tes1t/a/b"))
os.remove("C:/Users/EUN/Desktop/tes1t/a/b/test.txt")
print(os.listdir("C:/Users/EUN/Desktop/tes1t/a/b"))
7. os.rmdir() : 빈 폴더 삭제(가장 하위 폴더만)
빈 폴더만을 삭제해주며, 비어있지 않을 경우 에러 발생
os.rmdir("C:/Users/EUN/Desktop/test/a/b")
8. os.walk() : 경로, 폴더명, 파일명 모두 반환
os.walk()함수는 입력한 경로부터 그 경로 내의 모든 하위 디렉토리까지 하나하나 찾아다니며, 각각의 경로와 폴더명, 파일명들을 반환해 주는 함수이다.
generator로 반환해 주기 떄문에 for문이나 반복가능한(iterable) 함수 읽어야 한다.
for path, direct, files in os.walk("c:/Users/User/Desktop"):
print(path)
print(direct)
print(files)
(너무많아서 결과를 살짝 수정)
결과를 보듯이 (해당경로, 폴더명리스트, 파일명리스트), (다음 경로, 폴더명리스트, 파일명리스트) 순으로 계속 탐색을 해준다.
현재는 print만 했지만 가장 쉽고 폭넓게 탐색이 가능한 함수로 매우 유용하게 사용된다.
[Output]
c:/Users/EUN/Desktop
['code_study', 'test']
['test1.txt', 'test2.txt', 'test3.txt', 'testtest.csv', '이슈 메모.hwp']
c:/Users/User/Desktop\code_study
['.ipynb_checkpoints', 'practice', 'review', '가져온자료']
['chunck.R', 'python_code_url.hwp']
출처 : https://yganalyst.github.io/data_handling/memo_1/