파이썬의 OS 모듈은 환경변수, 디렉터리, 파일 등 여러 OS 자원을 제어할 수 있도록 하는 모듈이다.
os.environ
환경변수들을 나열
1 2 3 4 5 | Python 3.5.3 (v3.5.3:1880cb95a742, Jan 16 2017, 15:51:26) [MSC v.1900 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> import os >>> os.environ environ({'PSMODULEPATH': 'C:\\windows\\system32\\WindowsPowerShell\\v1.0\\Modules\\', ... } | cs |
os.system(command)
시스템 명령어를 실행한다. 성공시 0, 실패시 1을 반환한다
1 2 | >>> os.system("echo hello") 0 | cs |
os.getcwd()
현재 디렉터리 위치 출력
1 2 | >>> os.getcwd() 'C:\\Users\\samsung\\AppData\\Local\\Programs\\Python\\Python35-32' | cs |
os.chdir(path)
현재 디렉터리 위치 변경
1 2 3 | >>> os.chdir("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python") >>> os.getcwd() 'C:\\Users\\samsung\\AppData\\Local\\Programs\\Python' | cs |
os.access(path, mode)
path에 대해 mode 에 해당하는 작업이 가능한지의 여부를 반환
mode 종류
F_OK : 존재여부
R_OK : 읽기여부
W_OK : 쓰기여부
X_OK : 실행여부
1 2 3 4 5 6 7 8 | >>> os.access("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python", os.F_OK) True >>> os.access("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python", os.R_OK) True >>> os.access("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python", os.W_OK) True >>> os.access("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python", os.X_OK) True | cs |
os.listdir(path)
path에 존재하는 파일과 디렉터리들의 리스트를 반환
1 2 | >>> os.listdir("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python") ['Python35-32'] | cs |
os.mkdir(path)
path에 해당하는 디렉터리 생성
1 2 3 4 5 6 7 8 | >>> os.mkdir("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python\\test\\mkdir") Traceback (most recent call last): File "<pyshell#23>", line 1, in <module> os.mkdir("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python\\test\\mkdir") FileNotFoundError: [WinError 3] 지정된 경로를 찾을 수 없습니다: 'C:\\Users\\samsung\\AppData\\Local\\Programs\\Python\\test\\mkdir' >>> os.mkdir("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python\\test") >>> os.listdir("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python") ['Python35-32', 'test'] | cs |
os.makedirs(path)
path 디렉터리 생성을 위해 필요한 디렉터리 모두 생성
1 2 3 4 5 6 7 | >>> os.listdir("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python") ['Python35-32', 'test'] >>> os.makedirs("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python\\test1\\make") >>> os.listdir("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python") ['Python35-32', 'test', 'test1'] >>> os.listdir("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python\\test1") ['make'] | cs |
os.remove(path), os.unlink(path)
파일을 삭제
1 2 3 4 5 6 7 8 9 | >>> os.listdir("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python\\") ['hi.txt', 'hi2.txt', 'Python35-32', 'test', 'test1'] >>> os.remove("hi.txt") >>> os.listdir("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python\\") ['hi2.txt', 'Python35-32', 'test', 'test1'] >>> os.unlink("hi2.txt") >>> os.listdir("C:\\Users\\samsung\\AppData\\Local\\Programs\\Python\\") ['Python35-32', 'test', 'test1'] >>> | cs |
os.rmdir(path)
비어있는 디렉터리 삭제
1 2 3 4 5 6 7 8 9 | >>> os.listdir() ['Python35-32', 'test'] >>> os.listdir("test") ['remove'] >>> os.rmdir("test\\remove") >>> os.listdir() ['Python35-32', 'test'] >>> os.listdir("test") [] | cs |
os.removedirs(path)
디렉터리 연달아 삭제
1 2 3 4 5 6 7 | >>> os.listdir() ['Python35-32', 'test1'] >>> os.listdir("test1") ['make'] >>> os.removedirs("test1\\make") >>> os.listdir() ['Python35-32'] | cs |
os.rename(src, dst)
src를 dst로 이름 변경 및 이동
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | >>> os.listdir() ['Python35-32', 'rename'] >>> os.rename("rename", "rename1") >>> os.listdir() ['Python35-32', 'rename1'] >>> os.rename("rename1", "test\\rename2") Traceback (most recent call last): File "<pyshell#108>", line 1, in <module> os.rename("rename1", "test\\rename2") FileNotFoundError: [WinError 3] 지정된 경로를 찾을 수 없습니다: 'rename1' -> 'test\\rename2' >>> os.rename("rename1", "Python35-32\\rename2") >>> os.listdir() ['Python35-32'] >>> os.listdir("Python35-32") in ["rename2"] False >>> "rename2" in os.listdir("Python35-32") True | cs |
os.renames(src, dst)
src를 dst로 이름 변경 및 이동. 이동시 필요한 디렉터리 생성
1 2 3 4 5 6 7 8 9 10 | >>> os.listdir() ['Python35-32', 'rename'] >>> os.renames("rename", "rename1") >>> os.listdir() ['Python35-32', 'rename1'] >>> os.renames("rename1", "test\\rename2") >>> os.listdir() ['Python35-32', 'test'] >>> os.listdir("test") ['rename2'] | cs |
os.stat(path)
경로에 해당하는 정보를 얻어온다
1 2 3 4 | >>> os.stat("Python35-32") os.stat_result(st_mode=16895, st_ino=844424930507271, st_dev=1478741696, st_nlink=1, st_uid=0, st_gid=0, st_size=4096, st_atime=1525795298, st_mtime=1525795298, st_ctime=1496345000) >>> os.stat("rename") os.stat_result(st_mode=16895, st_ino=13510798882230629, st_dev=1478741696, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1537200037, st_mtime=1537200037, st_ctime=1537199979) | cs |
os.walk(path)
path으로 지정된 디렉터리를 순회하며 경로, 디렉터리명을 순차적으로 반환
1 2 3 4 5 6 7 8 9 10 | >>> for i in os.walk("Python35-32\\selenium"): print(i) ('Python35-32\\selenium', ['webdriver'], []) ('Python35-32\\selenium\\webdriver', ['firefox', 'remote'], []) ('Python35-32\\selenium\\webdriver\\firefox', ['amd64', 'x86'], []) ('Python35-32\\selenium\\webdriver\\firefox\\amd64', [], ['x_ignore_nofocus.so']) ('Python35-32\\selenium\\webdriver\\firefox\\x86', [], ['x_ignore_nofocus.so']) ('Python35-32\\selenium\\webdriver\\remote', [], ['getAttribute.js', 'isDisplayed.js']) | cs |
os.umask(mask)
umask를 설정
1 2 | >>> os.umask(0) 384 | cs |
os.pipe()
파이프 생성. 함수를 실행하면 읽기, 쓰기 전용 파이프의 파일 디스크립터 반환
1 2 | >>> os.pipe() (3, 5) | cs |
os.fdopen(fd)
파일 디스크립터를 이용해 파일 객체 생성
1 2 3 4 | >>> r,w = os.pipe() >>> rd = os.fdopen(r) >>> rd <_io.TextIOWrapper name=10 mode='r' encoding='cp949'> | cs |
os.popen(command[, mode])
command 실행하면서 파이프를 연다
1 2 3 | >>> p = os.popen("echo my_t0paz") >>> p.read() 'my_t0paz\n' | cs |
os.name
파이썬이 실행되는 운영체제 이름
1 2 | >>> os.name 'nt' | cs |
os.getpid()
현재 프로세스 아이디 반환
1 2 | >>> os.getpid() 16688 | cs |
os.getenv(varname)
환경변수의 값을 얻어온다.
1 2 | >>> os.getenv("PSMODULEPATH") 'C:\\windows\\system32\\WindowsPowerShell\\v1.0\\Modules\\' | cs |
os.putenv(varname, value)
환경변수 varname을 value로 설정. 자식 프로세스에 적용.
1 2 3 4 5 | >>> os.putenv("g0pher", "t0paz") >>> from os import popen >>> p = popen('''python -c "import os; print(os.getenv('g0pher'))"''','r') >>> p.read() 't0paz\n' | cs |
os.strerror(code)
code에 해당하는 에러 메시지
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | >>> for i in range(10): os.strerror(i) 'No error' 'Operation not permitted' 'No such file or directory' 'No such process' 'Interrupted function call' 'Input/output error' 'No such device or address' 'Arg list too long' 'Exec format error' 'Bad file descriptor' | cs |
os.startfile(path[, operation])
path에 해당하는 프로그램을 수행 수행과정에도 파이썬 코드는 멈추지 않음 ( system은 멈춤)
os.exec*
현재 프로세스에서 새로운 프로그램을 실행시키는 함수. * 위치에 어떤 문자가 오느냐에 따라 여러 설정 가능
l : 입력 인자 개수 지정
v : 인자 튜플로 받음
e : 환경변수 env 받는지 여부
p : 환경변수 path 이용하는 경우
'Programing > Python' 카테고리의 다른 글
Python :: 파이썬 argv 인자받기 (0) | 2018.07.19 |
---|---|
Python :: 파이썬 해쉬 함수 및 모듈 (+오류) (1) | 2018.07.19 |
Python :: __name__ 과 __main__ (0) | 2018.05.17 |
Python :: Flask (0) | 2018.05.17 |
Python :: PYC 확장자 디컴파일 (0) | 2018.05.03 |