os모듈은 OS에 의존하는 다양한 기을 제공하는 모듈이다. 파일이나 디렉토리 조작이 가능하고, 파일의 목록이나 path를 얻을 수 있거나, 새로운 파일 혹은 디렉토리를 작성하는 것도 가능하다. 이 포스팅을 통해 os 모듈에서 사용할 수 있는 주요 메소드를 정리하고자 한다.
1. os.walk()
os.walk()는 파일이나 디렉토리의 목록을 얻기 위한 모듈이다. 인수로 디렉토리명을 지정하는 것으로 파일이나 특정 확장자의 목록, 파일 경로를 취득할 수 있다.
예를 들어, 파일의 목록을 얻고 싶은 경우 아래와 같이 작성할 수 있다.
[디렉토리의 구성]
test/
┣ dirA
┃ ┣ a-1.txt
┃ ┣ a-2.txt
┃ ┗ dirD/
┃ ┗ d-1.txt
┃
┣ dirB/
┃ ┣ b-1.py
┃ ┗ b-2.py
┃
┗ dirC/
┣ c-1.txt
┗ c-2.txt
[샘플 코드]
import os
for curDir, dirs, files in os.walk("test"):
for f in files:
print(os.path.join(curDir, f))
[실행 결과]
b-2.py
b-1.py
c-1.txt
c-2.txt
a-2.txt
a-1.txt
d-1.txt
os.walk() 자세한 사용법은 아래의 포스팅을 참고하길 바란다.
2. os.listdir()
os.listdir()은 파일이나 디렉토리의 목록을 확인하기 위해 사용한다. 예를들어, 파일의 목록을 얻고 싶은 경우 다음과 같이 이 코드를 작성할 수 있다.
[디렉토리 구성]
└── dir
├── sample1.txt
├── sample2.txt
├── sample3.txt
├── subdir1
└── subdir2
[샘플 코드]
import os
path = './dir'
flist = os.listdir(path)
print(flist)
[실행 결과]
['subdir2', 'Untitled.ipynb', 'test2.csv', 'subdir1', 'test1.csv', '.ipynb_checkpoints', 'sample1.txt', 'sample2.txt', 'sample3.txt']
os.listdir()에 관련된 자세한 설명은 아래의 링크를 참조하길 바란다.
3. os.path()
os.path()모듈은 '파일이나 디렉토리의 존재 확인', '지정한 경로의 파일명을 취득', '경로나 파일명의 결합' 등의 용도로 사용한다.
아래의 표는 os.path()에서 자주 사용되는 메소드 목록이다.
exists() | 파일 및 디렉토리의 존재를 확인할 수 있다. return값은 Bool형이 된다. |
isdir() | 디렉토리의 존재여부를 확인할 수 있다. return값은 Bool형. |
isfile() | 파일의 존재여부를 확인할 수 있다. return값은 Bool형. |
basename() | 지정된 경로의 파일명을 리턴한다. |
dirname() | 지정된 경로로부터 파일명을 제외한 것을 리턴한다. |
split() | 지정된 경로의 파일명과, 그 경로를 리턴한다. |
splitext() | 지정된 파일의 확장자와 확장를 제외한 파일명까지의 경로를 리턴한다. |
join() | 경로와 파일명 등을 결합하는 것이 가능하다. |
os.path()에 대한 자세한 내용은 아래의 링크를 참조하길 바란다.
4. os.environ()
os.environ()은 환경변수를 취득하거나, 읽어들이거나 쓰기 위해 사용한다. 환경변수란 시스템이 참고하고 있는 공통의 변수로, 환경에 관련된 데이터나 공통으로 사용하는 파일의 경로 등을 저장하기 위해 사용된다.
예를 들어, Python에서 환경변수의 쓰기를 실행할 때는, 아래와 같이 작성할 수 있다.
[샘플 코드]
import os
os.environ["PHASE"] = "staging"
print("env(): " + os.environ["PHASE"])
[실행 결과]
env(): staging
이 또한 자세한 설명은 아래의 블로그를 참고하길 바란다.
5. os.mkdir()
os.mkdir()을 사용하면, 간단히 디렉토리를 작성할 수 있다. 예를 들어, dir아래에 sub디렉토리를 작성하는 경우는 아래와 같이 코드를 쓸 수 있다.
[샘플 코드]
import os
path = './dir/sub'
os.mkdir(path)
os.mkdir()에 대해 자세한 설명은 아래의 포스팅을 참고하길 바란다.
6. os.rename()
os.rename()은 지정한 파일명을 변경할 때 사용한다. os.rename()은 변수전의 파일명과 변경후의 파일명을 지정한다. 아래의 샘플 코드에서 'sample_00.txt'를 'sample_01.txt'로 변경한 것이다.
[샘플 코드]
import os
# 変更前ファイル
path1 = './dir/sample_00.txt'
# 変更後ファイル
path2= './dir/sample_01.txt'
# ファイル名の変更
os.rename(path1, path2)
# ファイルの存在確認
print(os.path.exists(path2))
[실행 결과]
True
os.rename()에 관련된 자세한 내용은 아래의 포스팅을 참고하길 바란다.
7. os.remove()
os.remove()는 파일을 삭제하기 위해 사용한다. 삭제하기 위해서는 os.remove()파라미터에 삭제하고 싶은 파일명을 경로를 이용해 지정한다. 아래의 샘플 코드에서는 './dir/sample.txt'의 파일을 삭제하고 있다.
[샘플 코드]
import os
path = './dir/sample.txt'
os.remove(path)
print(os.path.exists(path))
[실행 코드]
False
os.remove()에 대한 자세한 설명은 아래의 포스팅을 참조하길 바란다.
참고자료
'IT > 언어' 카테고리의 다른 글
[python] 언더스코어(_, underscore,アンダースコア) 사용 정리 (0) | 2020.05.28 |
---|---|
[python/Numpy] Numpy배열 ndarray의 슬라이스를 이용한 부분 배열의 선택과 대입 (0) | 2020.05.27 |
[python] ArgumentParser(argpaser)의 사용법 간단 정리 (0) | 2020.05.20 |
[python] 리스트의 요소 추가와 다른 리스트와의 결합 (0) | 2020.05.19 |
[python] Iterator와 Generator (4) | 2020.05.13 |