이번 포스팅은 파이썬의 os 모듈을 사용하면서 알아갔던 내용을 정리했습니다
| os 모듈
- os 모듈은 파이썬에서 가장 많이 사용되는 모듈 중 하나입니다. 로우 레벨의 os 시스템을 처리하며 여러 os에서 인터페이스를 일관되게 제공하는 것이 특징입니다. 물론 특정 os에서만 구동 가능한 기능도 있습니다. 하지만 이런 기능은 애플리케이션을 만들 때 os 포팅이 없을 경우에만 사용해야 합니다! os 모듈의 유용한 매서드를 예시를 통해 알아보겠습니다.
1.) 디렉터리 목록을 보여주는 os.listdir()
- os.listdir()은 디렉터리의 목록을 확인하기 위해 사용합니다.
| 디렉터리 구성
| 코드
import os
path = './dir'
print(os.listdir(path))
print(type(os.listdir(path)
>>> ['dir_a.py', 'dir_a.txt', 'dir_b.py', 'dir_b.txt', 'dir_c.txt']
<class 'list'>
- 결과를 보시면 dir 안에 있는 목록들을 다 볼 수 있으며, 리스트로 반환되는 것을 확인했습니다.
2.) 파일 또는 디렉터리 이름을 바꾸는 os.rename()
- 앞의 디렉터리 구성을 그대로 dir_a.py를 dir_c.py로 바꾸는 예제를 해보겠습니다.
| 코드
import os
path = './dir'
os.rename(path + '/' + 'dir_a.py', path + '/' + 'dir_c.py')
print(os.listdir(path))
>> ['dir_a.txt', 'dir_b.py', 'dir_b.txt', 'dir_c.py', 'dir_c.txt']
3.) 파일을 삭제하는 os.remove()
| 코드
import os
path = './dir'
os.remove(path + '/' + 'dir_c.py')
print(os.listdir(path))
>> ['dir_a.txt', 'dir_b.py', 'dir_b.txt', 'dir_c.txt']
4.) 하나의 디렉터리를 생성하는 os.mkdir()
- os.mkdir()는 절대 경로 혹은 상대 경로와 디렉터리 명을 지정하여 사용합니다.
- 이미 있는 디렉터리명이면 에러가 발생합니다.
| 코드
import os
path = './dir'
os.mkdir(path + '/' + 'make_dir')
print(os.listdir(path))
>> ['dir_a.txt', 'dir_b.py', 'dir_b.txt', 'dir_c.txt', 'make_dir']
5.) 디렉터리 경로를 생성하는 os.makedirs()
- 앞서 os.mkdir()은 하나의 디렉터리를 생성했다면 os.makedirs()는 원하는 만큼 디렉터리를 생성할 수 있습니다.
- exist_ok라는 파라미터를 통해 True라면 디렉터리 명이 존재하면 에러 없이 넘어가며 없는 경우, 디렉터리를 생성합니다.
| 코드
import os
path = './dir'
os.makedirs(path + '/' + 'make_dir/dirs_1/dirs_2', exist_ok=true)
결과)
- 앞서 생성한 make_dir이지만 exist_ok = True를 하여 에러 없이 생성한 것을 볼 수 있습니다.
6.) 하나의 디렉터리를 삭제하는 os.rmdir()
| 코드
import os
path = './dir'
os.rmdir(path + '/' + 'make_dir/dirs_1/dirs_2')
결과)
- dirs_2만 삭제된 것을 볼 수 있습니다.
7.) 최하위 경로에서부터 시작해 디렉터리 트리를 삭제하는 os.removedirs()
- os.makedirs()와 비슷한 os.removedirs()입니다.
os.removedirs()는 삭제 중 비어 있지 않은 디렉터리가 나타나면 멈춥니다.
| 코드
import os
path = './dir'
os.removedirs(path + '/' + 'make_dir/dirs_1')
print(os.listdir(path))
>> ['dir_a.txt', 'dir_b.py', 'dir_b.txt', 'dir_c.txt']
- make_dir까지 삭제되고 그다음 삭제를 하려 할 때 비어 있지 않아 삭제가 되지 않은 것을 볼 수 있습니다.
지금까지 os 모듈의 기초 사용법에 대해 알아봤습니다
os 모듈은 제가 정리한 것 말고도 메서드들이 굉장히 많으므로 필요하신 분들은 찾아보시면 좋을 것 같습니다!
다음 포스팅으로 찾아오겠습니다 감사합니다 :)
'Python > Python 정리' 카테고리의 다른 글
[Python] super() 메서드 정리 (0) | 2022.07.06 |
---|---|
[Python] os.path를 활용한 파일, 디렉터리 관리 (0) | 2022.07.03 |
[Python] __enter__, __exit__ 메서드 (2) | 2022.06.13 |
[Python] with 구문 이해 (2) | 2022.06.10 |
[Python] for ~ else 문 정리 (0) | 2022.06.09 |