본문으로 바로가기

Python :: os 모듈

category Programing/Python 2018. 9. 18. 01:32

파이썬의 OS 모듈은 환경변수, 디렉터리, 파일 등 여러 OS 자원을 제어할 수 있도록 하는 모듈이다.



os.environ

환경변수들을 나열


1
2
3
4
5
Python 3.5.3 (v3.5.3:1880cb95a742, Jan 16 201715: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 1in <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 1in <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()
(35)
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