일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 파이썬 엑셀 파일 읽고 쓰기
- 파이썬 #
- ROS #Robotics #ROS기초
- 파이썬 파일 전송
- 파이썬 프로젝트
- pdf 번역
- 파이썬 #파이썬프로젝트 #파이썬 예시 #파이썬 파일경로 #파이썬 자동화
- 스트림 암호 one-time-pad 공격#보안#암호
- 통계 #ROC #TPR #FPR #TNR #이진분류 #Accuracy #Recall
- PDF 개행문자
- 패스트 캠퍼스 #자율주행 #비전
- 파이썬 유튜브
- 파이썬 열
- 파이썬 음성파일 텍스트 변환
- 논문번역 꿀팁
- 파이썬 텍스트 변환 #파이썬 공부
- 파이썬 채팅
- 파이썬 예시
- 파이썬#파이썬경로#파이썬폴더#파이썬디렉토리
- 파이썬 음성인식
- 크롬오류#크롬검색어자동완성끄기#검색어자동완성오류#검색어자동완성 제거#검색어 노란선#검색어반복입력
- 파이썬
- 파파고 꿀팁
- 리눅스#모의해킹#리눅스명령어#head 명령어
- 리눅스기초#리눅스명령어#리눅스 tail#tail#모의해킹 리눅스
- QGC#QGrouncControl#GLIB오류
- 파파고 번역
- 파이선 행
- 파이썬#subprocess#communicate()
- ROS #spin() #spinOnce() #ROS기초
개발자비행일지
파이썬 os모듈 사용법 본문
1. os 모듈의 다양한 함수
os 모듈은 내 컴퓨터의 디렉터리(폴더)나 경로, 파일 등을 활용하게 도와주는 모듈로 활용빈도가 굉장히 높다.
이 모듈이 제공하는 다양한 함수들에 대해 알아보자
1-1. os.getcwd()
: 현재 작업 디렉토리 확인
os.getcwd()
[Output]
'C:\\Users\\User\\Desktop\\'
1-2. os.chdir()
: 현재 작업 디렉토리 변경
os.chdir("D:/")
os.getcwd()
[Otuput]
'D:\\'
1-3. os.listdir()
: 입력 경로 내의 모든 파일과 폴더명 리스트 반환
os.listdir("C:/Users/User/Desktop")
[Output]
['python_practice.py',
'연구노트.hwp'
'개인자료',
'새 폴더',
'공유자료',
'데이터설명서모음',
'크기비교 수정']
폴더는 폴더명, 파일은 확장자명까지 알려준다.
1-4. os.mkdir()
: 폴더 생성
os.mkdir("C:/Users/User/Desktop/test")
os.listdir("C:/Users/User/Desktop/")
[Output]
['python_practice.py',
'연구노트.hwp'
'개인자료',
'새 폴더',
'공유자료',
'데이터설명서모음',
'크기비교 수정',
'test']
입력 경로의 마지막의 디렉토리 명으로 폴더를 생성한다.
이미 있는 파일명일 경우, 에러가 발생한다.
os.mkdir("C:/Users/User/Desktop/test")
[Output]
---------------------------------------------------------------------------
FileExistsError Traceback (most recent call last)
<ipython-input-29-703c0a2ae4a0> in <module>
----> 1 os.mkdir("C:/Users/User/Desktop/tes1t")
FileExistsError: [WinError 183] 파일이 이미 있으므로 만들 수 없습니다: 'C:/Users/User/Desktop/tes1t'
1-5. os.makedirs()
: 모든 하위 폴더 생성
경로의 제일 마지막에 적힌 폴더 하나만 생성하는 os.mkdir()
과 달리 os.makedirs()
함수는 경로의 모든폴더를 만들어 준다.
os.makedirs("C:/Users/User/Desktop/test/a/b")
실제로 확인해보면, C:/Users/User/Desktop/test/a/b
이 생겨있다.
1-6. os.remove()
os.unlink()
: 파일 삭제
print(os.listdir("C:/Users/User/Desktop/tes1t/a/b"))
os.remove("C:/Users/User/Desktop/tes1t/a/b/test.txt")
print(os.listdir("C:/Users/User/Desktop/tes1t/a/b"))
[Output]
['test.txt']
[]
os.unlink()
함수도 똑같이 동작한다.
1-7. os.rmdir()
: 빈 폴더 삭제(가장 하위 폴더만)
빈 폴더만을 삭제해주며, 비어있지 않을 경우 에러 발생
os.rmdir("C:/Users/User/Desktop/test/a/b")
[Output]
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-41-d718dffe3d52> in <module>
----> 1 os.rmdir("C:/Users/User/Desktop/test/a/b")
OSError: [WinError 145] 디렉터리가 비어 있지 않습니다: 'C:/Users/User/Desktop/test/a/b'
1-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)
[Output]
c:/Users/User/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']
(너무많아서 결과를 살짝 수정하긴 했다.)
결과를 보듯이 (해당경로, 폴더명리스트, 파일명리스트), (다음 경로, 폴더명리스트, 파일명리스트) 순으로 계속 탐색을 해준다.
현재는 print만 했지만 가장 쉽고 폭넓게 탐색이 가능한 함수로 매우 유용하게 사용된다.
2. os.path 모듈의 다양한 함수
os.path 모듈은 파일 또는 폴더 명이나, 확장자, 존재유무 등을 알아볼 수 있는 모듈이다.
2-1. os.path.isdir()
: 폴더 유무 판단
입력된 경로가 폴더인지 아닌지 판별해준다.
os.path.isdir("C:/Users/User/Desktop/test")
[Output]
True
폴더가 없는 경우에도 False를 반환
os.path.isdir("C:/Users/User/Desktop/nono")
[Output]
False
2-2. os.path.isfile()
: 파일 유무 판단
마찬가지로 이번엔 파일인지 아닌지를 판별하고,
파일이면 True, 아니면 False, 없어도 False를 반환한다.
os.path.isfile("C:/Users/User/Desktop/test/test.txt")
[Output]
True
2-3. os.path.exists()
: 파일이나 폴더의 존재여부 판단
파일,폴더이면 True, 해당 파일,폴더가 없을때 False
os.path.exists("C:/Users/User/Desktop/test/test.txt")
[Output]
True
os.path.exists("C:/Users/User/Desktop/test/")
[Output]
True
2-4. os.path.getsize()
: 파일의 크기(size) 반환
os.path.getsize("C:/Users/User/Desktop/test/test.txt")
[Output]
856
단위는 바이트이다.
2-5. os.path.split()
os.path.splitext()
: 경로와 파일 분리
이 두 함수는 실제 파일 또는 폴더의 존재여부와는 상관없이 텍스트로 분리해준다.
전자는 맨 하위에 위치한 파일 또는 폴더명 분리
os.path.split("C:/Users/User/Desktop/test/test.txt")
[Output]
('C:/Users/User/Desktop/test', 'test.txt')
확장자 분리
os.path.splitext("C:/Users/User/Desktop/test/test.txt")
[Output]
('C:/Users/User/Desktop/test/test', '.txt')
2-6. os.path.join()
: 파일명과 경로를 합치기
path = "C:/User/Desktop/test"
filename = "test.txt"
os.path.join(path, filename)
[Output]
'C:/User/Desktop/test\\test.txt'
그냥 슬래쉬(/ 또는 \)로 결합해주는 역할을 한다.
2-7. os.path.dirname()
, os.path.basename()
dirname()
함수는 입력 경로의 폴더경로까지 꺼내주고, basename()
함수는 파일이름만 꺼내주는 함수이다.
앞의 os.path.split()
함수의 튜플을 꺼낸 것과 동일하다.
os.path.dirname("C:/Users/User/Desktop/test/test.txt")
[Output]
'C:/Users/User/Desktop/test'
os.path.basename("C:/Users/User/Desktop/test/test.txt")
[Output]
'test.txt'
'▶ Python' 카테고리의 다른 글
Python @연산자, 벡터 행렬 곱연산 (0) | 2020.07.14 |
---|---|
파이썬 딕셔너리 (0) | 2020.07.10 |
파이썬으로 pdf 파일 제목 추출하기 (0) | 2020.07.10 |
파이썬 연립방정식풀기 (0) | 2020.07.07 |
파이썬 부등식 (0) | 2020.07.07 |