OS 모듈은 파이썬을 설치할 때 자동으로 설치되는 파이썬 라이브러리
에 포함된다.
그리고 환경 변수나 디렉토리, 파일 등의 OS 자원을 제어할 수 있게 해주는 모듈입니다.
현재 작업 폴더 얻기
os.getcwd()를 사용하여 얻습니다. (get current working directory)
print(os.getcwd())
# D:\source\test
디렉토리 변경
os.chdir(path)를 사용합니다. (path는 문자열이어야함.)
os.chdir("C:\WINDOWS")
print(os.getcwd())
# C:\WINDOWS
시스템 명령어 호출하기
시스템 자체의 프로그램이나 기타 명령어를 파이썬에서 호출할 수도 있다. OS.system("")
os.system("ipconfig")
# Windows IP ����
#
#
# ���� LA
문자열이 깨져서 나온다.
실행한 시스템 명령어의 결과값 돌려받기
시스템 명령어를 실행한 결과값을 읽기 모드 형태의 파일 객체로 돌려준다.
f = os.popen("ipconfig")
print(f.read())
# [Windows IP 구성
#
#
# 무선 L ... ]
문자열이 잘나오네
디렉터리 생성
os.mkdir(디렉터리) 디렉터리를 생성한다.
os.mkdir("D:/source/test/test")
디렉터리 삭제
os.rmdir(디렉터리) 디렉터리를 삭제한다.단, 디렉터리가 비어있어야 삭제가 가능하다.
os.rmdir("D:/source/test/test")
파일 지우기
os.unlink(파일) 파일을 지운다.
os.unlink("D:/source/test/test.txt")
이름 바꾸기
os.rename(src, dst) src라는 이름의 파일을 dst라는 이름으로 바꾼다.
os.rename('d:/source/test/a.txt','v')
함수 설명
.path
- 인터넷에 공유되어 있는 정보와 실행했을때의 다른점이 많아서, 그냥 예제로 설명하겠습니다.
- 기준 위치
D:\source\CloudStation\AAT\config\log_class.py\padp.py
상대 경로에 대해 절대 경로 얻기
os.path.abspath(path)
print(os.path.abspath("."))
print(os.path.abspath(a))
print(os.path.abspath("../config/DB"))
# D:\source\CloudStation\AAT\DB
# D:\source\CloudStation\AAT\config\log_class.py\padp.py
# D:\source\CloudStation\AAT\config\DB
경로 중 디렉토리명만 얻기
os.path.dirname(path)
print(os.path.dirname(a))
print(os.path.dirname(os.path.dirname(a)))
print(os.path.dirname(os.path.abspath(os.path.dirname(a))))
---
print(os.path.abspath(a))
print(os.path.dirname(os.path.abspath(a)))
print(os.path.dirname(os.path.dirname(os.path.abspath(a))))
print(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(a)))))
# D:\source\CloudStation\AAT\config\log_class.py
# D:\source\CloudStation\AAT\config
# D:\source\CloudStation\AAT\config
---
# D:\source\CloudStation\AAT\config\log_class.py\padp.py
# D:\source\CloudStation\AAT\config\log_class.py
# D:\source\CloudStation\AAT\config
# D:\source\CloudStation\AAT
dirname()이 디렉토리명만 얻는다는 설명이 많은데, 사용해보면 그렇지 않다. 인자값으로 주어진 경로 중 마지막 경로를 제외한 나머지 경로를 반환한다.
경로 중 파일명만 얻기
os.path.basename(path)
print(os.path.basename(a))
# padp.py
경로 중 디렉토리명과 파일명 나누어 얻기
os.path.split(path) 디렉토리명, 파일명이 리스트 형태로 나옵니다.
dir = os.path.split(a)
print(dir)
dir, file = os.path.split(a)
print(dir, file, sep="\n")
# ('D:\\source\\CloudStation\\AAT\\config\\log_class.py', 'padp.py')
# D:\source\CloudStation\AAT\config\log_class.py
padp.py
dir 변수 한개일때는 .split
을 사용했을때 튜플형식으로 값이 출력된다.
따라서 .split
은 디렉토리명과 파일명, 이 두가지 값을 출력하므로 변수 두개를 주면(dir, file) 각 변수에 나눠서 입력된다.
sep=""
의 경우 각 변수들 사이에 ""
안에있는 이스케이프문자
가 입력된다.
end=""
는 문장을 출력하고 마지막에 이스케이프문자
를 입력한다.
경로를 병합하여 새 경로 생성
os.path.join(path, path1, path2, ...) 넘겨준 path들을 묶어 하나의 경로로 만들어줍니다.
print(os.path.join(a, "test.txt"))
# D:\source\CloudStation\AAT\config\log_class.py\padp.py\test.txt
파일 혹은 디렉토리가 존재하는지 체크
os.path.exists(path)
print(os.path.exists("D:\source\\test"))
# True
print(os.path.exists("D:\source\\test\\os_test.py"))
# True
디렉토리가 존재하는지 체크
os.path.isdir(path)
print(os.path.isdir("D:\source\\test"))
# True
print(os.path.isdir("D:\source\\test\\os_test.py"))
# False
파일이 존재하는지 체크
os.path.isfile(path)
print(os.path.isfile("D:\source\\test"))
# False
print(os.path.isfile("D:\source\\test\\os_test.py"))
# True
파일의 크기
os.path.getsize(path)
print(os.path.getsize(__file__))
# 558
디렉토리 안의 파일/서브 디렉토리 리스트
os.listdir(path) path 하위에 있는 파일, 디렉토리 리스트를 보여줍니다.
print(os.listdir("D:\source\\test"))
# ['.git', '.idea', 'beautifulsoup_test.py', 'filename.txt', 'os_test.py', 'report.xls', 'requests_test.py', 'telegram_test.py', 'venv', '__pycache__']
참고문헌
[Python] 파이썬 파일과 디렉토리 경로, "https://itmining.tistory.com/122", [IT 마이닝]
[Python] os.path 모듈. 파일 경로 조작하기, "https://dololak.tistory.com/693", [코끼리를 냉장고에 넣는 방법]
점프 투 파이썬, "https://wikidocs.net/33", [박응용]
파이썬 os.path 모듈, "https://yeo0.github.io/pg/2018/11/21/%ED%8C%8C%EC%9D%B4%EC%8D%AC-os.path-%EB%AA%A8%EB%93%88/", [통계쟁이 엔지니어]
os — 기타 운영 체제 인터페이스, "https://docs.python.org/ko/3.8/library/os.html"
[Python] 파이썬 파일과 디렉토리 경로, "https://itmining.tistory.com/122", [IT 마이닝]
[Python] os.path 모듈. 파일 경로 조작하기, "https://dololak.tistory.com/693", [코끼리를 냉장고에 넣는 방법]
점프 투 파이썬, "https://wikidocs.net/33", [박응용]
파이썬 os.path 모듈, "https://yeo0.github.io/pg/2018/11/21/%ED%8C%8C%EC%9D%B4%EC%8D%AC-os.path-%EB%AA%A8%EB%93%88/", [통계쟁이 엔지니어]
os — 기타 운영 체제 인터페이스, "https://docs.python.org/ko/3.8/library/os.html"
Ghost