내용
파일 관리
os 모듈
파이썬의 os
모듈을 사용하여 디렉토리(directory)를 조정할 수 있습니다.
함수 | 내용 |
---|---|
getcwd() | 현재 인터프리터가 작동되고 있는 디렉토리(Current Working Directory)를 나타냄, 문자열 형식 |
getcwdb() | getcwd()와 동일하지만 bytes 형식으로 반환 |
chdir() | 현재 working directory를 다른 디렉토리로 변경 |
listdir() | working directory의 모든 하위디렉토리와 파일의 목록을 반환 |
mkdir() | 지정된 경로에 새로운 디렉토리를 생성. 경로를 지정하지 않으면 working directory에 생성 |
rename(이름, 교체할 이름) | 디렉토리의 이름을 교체 |
remove() | 파일을 삭제 |
rmdir() | 빈 디렉토리를 제거 |
import os os #모듈의 경로 반환
<module 'os' from 'C:\home\~\anaconda3\lib\os.py'>
#getcwd() current=os.getcwd();current
'/home/~/python_programming'
type(current)
str
current2=os.getcwdb(); current2
b'/home/~/\xeb\xac\xb8\xec\x84\x9c/python_programming'
type(current2)
bytes
#chdir() os.chdir("/home/~/문서") os.getcwd()
'/home/~/문서'
#listdir() os.getcwd()
'/home/~/python_programming'
os.listdir()
['python_programming_eng.epub', |
'__pycache__', |
... |
'polymorphism.py', |
'test1.txt'] |
#mkdir() os.getcwd()
'/home/~/test'
os.listdir()
[]
os.mkdir('subtest') os.listdir()
['subtest']
#rename() os.rename("subtest", "newTest") os.listdir()
['newTest']
#remove(), rmdir() os.listdir()
['test.txt']
os.remove("test.txt") os.listdir()
[]
os.chdir('/~/test') os.listdir()
['newTest']
os.rmdir("newTest") os.listdir()
[]
rmdir()은 빈 디렉토리에서만 작동됩니다. 디렉토리내에 하위 디렉토리나 파일이 존재할 경우 이 명령은 예외를 발생시킵니다.
try: os.rmdir('test1') except: print("내부에 내용물이 있으므로 삭제되지 않았습니다.")
내부에 내용물이 있으므로 삭제되지 않았습니다.
os.path 모듈
os 모듈내에 있는 하위모듈로서 파일이나 폴더에 대한 정보를 알려줍니다.
함수 | 내용 |
---|---|
isdir() | 지정된 이름이 폴더인지를 판단하여 True/False반환 지정된 이름의 폴더가 없어도 False, 그 이름이 파일이라도 False를 반환 |
isfile() | isdir()과 유사하지만 폴더가 아닌 파일인지를 판단 |
exists() | 파일이나 폴더가 존재하는가를 판단 |
getsize() | 파일의 크기를 반환(byte단위로 표시), 폴더의 크기는 반환하지 못함 |
split() | 파일과 폴더의 경로를 구분해 주는 함수 경로 중의 마지막에 존재하는 것을 분리 |
splitext() | 마지막 파일의 확장명을 따로 분리하여 반환 마지막이 폴더일 경우 분리되지 않음 |
join() | 파일이름과 폴더 이름을 합쳐주는 함수 |
dirname() | 경로의 폴더만을 분취하여 나타내는 함수 |
basename() | 경로에서 파일만을 분취하여 나타내는 함수 |
os.path.isdir('reg_fig')
True
os.path.isdir('test.db')
False
os.path.isfile('test.db')
True
os.path.exists('test')
False
os.path.exists('test.db')
True
os.path.getsize('function_names.xlsx')
19037
os.path.getsize('c:/python')
4096
os.path.split("C:\\Users\\~\\~\\python_web\\sys_os_module.ipnyb")
('C:\\Users\\~\\~\\python_web', 'sys_os_module.ipnyb')
os.path.split("C:\\Users\\~\\~\\python_web\\reg_fig")[1]
'reg_fig'
os.path.splitext("C:\\Users\\~\\~\\python_web\\sys_os_module.ipnyb")
('C:\\Users\\~\\~\\python_web\\sys_os_module', '.ipnyb')
os.path.splitext("C:\\Users\\~\\~s\\python_web\\reg_fig")
('C:\\Users\\~\\~\\python_web\\reg_fig', '')
x=os.path.split("C:\\Users\\~\\~\\python_web\\sys_os_module.ipnyb") os.path.join(x[0], x[1])
'C:\\Users\\~\\~\\python_web\\sys_os_module.ipnyb'
#폴더만을 분취하여 나타냄 os.path.dirname("C:\\Users\\~\\~\\python_web\\sys_os_module.ipnyb")
'C:\\Users\\~\\~\\python_web'
#파일이름을 분취하여 나타냄 os.path.basename("C:\\Users\\~\\~\\python_web\\sys_os_module.ipnyb")
'sys_os_module.ipnyb'
sys 모듈
설치된 파이썬에 대한 많은 정보들은 sys
모듈을 사용하여 확인할 수 있습니다. 빈번히 사용되는 함수들은 다음과 같습니다.
함수 | 내용 |
---|---|
sys.builtin_module_names | import의 명령없이 사용할 수 있는 내장 모듈을 확인 |
sys.path | 모듈을 찾을 특정경로를 보여줌 |
sys.path.append | 모듈을 이용하여 모듈을 찾을 경로를 첨가할 수 있다. |
import sys sys.modules['os']
<module 'os' from 'C:\\Users\\~\\Anaconda3\\lib\\os.py'>
sys.builtin_module_names
('_abc', |
'_ast', |
&vellips; |
'itertools', |
'marshal', |
'math', |
&vellips; |
'sys', |
'time', |
'winreg', |
'xxsubtype', |
'zlib') |
sys.path
['C:\Users\~\anaconda3\python39.zip', |
&vellips; |
'C:\Users\~\anaconda3\lib\site-packages\win32\lib', |
'C:\Users\~\anaconda3\lib\site-packages\Pythonwin'] |
sys.path.append('C:\\Users\\~\\~\\note\\python\\산책') sys.path
['C:\Users\~\~\note\python\산책', |
'C:\Users\~\anaconda3\python39.zip', |
&vellips; |
'C:\Users\~\anaconda3\lib\site-packages\win32\lib', |
'C:\Users\~\anaconda3\lib\site-packages\Pythonwin'] |
댓글
댓글 쓰기