OS ๋ชจ๋“ˆ
Programming/Python

OS ๋ชจ๋“ˆ

1. OS ๋ชจ๋“ˆ

- ์šด์˜์ฒด์ œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ชจ๋“ˆ

>>> import os

 

2. OS ํ•จ์ˆ˜

ํ…Œ์ŠคํŠธ ๋””๋ ‰ํ† ๋ฆฌ ํ™˜๊ฒฝ

#os.path.join : ๊ฒฝ๋กœ dir/ํŒŒ์ผ์„ ๋„ฃ์„ ๊ฒฝ์šฐ OS์— ๋งž๊ฒŒ ๊ฒฝ๋กœ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
#Windows OS์—์„œ๋Š” '\\' Linux OS์—์„œ๋Š” '/'๋กœ ๊ตฌ๋ถ„
>>> os.path.join('Users', 'eunhhye', 'Desktop')
'Users/eunhhye/Desktop'

#os.getcwd : ํ˜„์žฌ ๊ฒฝ๋กœ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
>>> os.getcwd()
'/Users/eunhye'

#os.chdir : ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜
>>> os.chdir('Desktop')
>>> os.getcwd()
'/Users/eunhye/Desktop'
>>> os.makedirs('Workspace')
>>> os.chdir('Workspace')
>>> os.getcwd()
'/Users/eunhye/Desktop/Workspace'

#os.path.abspath : ์ƒ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์ •๋Œ€ ๊ฒฝ๋กœ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
>>> os.path.abspath('.')
'/Users/eunhye/Desktop/Workspace'

#os.path.isabs : ์ ˆ๋Œ€ ๊ฒฝ๋กœ์ผ ๊ฒฝ์šฐ True, ์ƒ๋Œ€ ๊ฒฝ๋กœ์ผ ๊ฒฝ์šฐ False๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
>>> os.path.isabs('.')
False
>>> os.path.isabs('/Users/eunhye/Desktop/Workspace')
True
>>> os.path.isabs(os.path.abspath('.'))
True

#os.path.relpath : start ๊ฒฝ๋กœ๋กœ ์‹œ์ž‘ํ•˜๋Š” path์˜ ์ƒ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
#os.path.relpath(path, start)
#start๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ํ˜„์žฌ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉ
>>> os.path.relpath('/Users/eunhye/Desktop/Workspace', '/Users/eunhye')
'Desktop/Workspace'
>>> os.path.relpath('/Users/eunhye/Desktop/Workspace', '/Users/eunhye/Test')
'../Desktop/Workspace'
>>> os.chdir('/Users/eunhye/Test')
>>> os.getcwd()
'/Users/eunhye/Test'
>>> os.path.relpath('/Users/eunhye/Desktop/Workspace')
'../Desktop/Workspace'

#os.path.basename : ํ•ด๋‹น ๊ฒฝ๋กœ์˜ ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
>>> path = '/Users/eunhye/Desktop/Workspace/test.exe'
>>> os.path.basename(path)
'test.exe'

#os.path.dirname : ํ•ด๋‹น ๊ฒฝ๋กœ์˜ ํŒŒ์ผ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
>>> os.path.dirname(path)
'/Users/eunhye/Desktop/Workspace'

#os.path.split : ํ•ด๋‹น ๊ฒฝ๋กœ์˜ ๋””๋ ‰ํ† ๋ฆฌ/ํŒŒ์ผ ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
>>> os.path.split(path)
('/Users/eunhye/Desktop/Workspace', 'test.exe')

>>> (os.path.dirname(path), os.path.basename(path))
('/Users/eunhye/Desktop/Workspace', 'test.exe')

#path, os.path.sep : ๊ฒฝ๋กœ๋ฅผ OS์— ๋งž๊ฒŒ ๋””๋ ‰ํ† ๋ฆฌ/ํŒŒ์ผ ์ด๋ฆ„๋“ค์„ ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
#Linux OS์—์„œ๋Š” ๋ฆฌ์ŠคํŠธ ๋งจ ์•ž์ด ๊ณต๋ฐฑ
>>> path.split(os.path.sep)
['', 'Users', 'eunhye', 'Desktop', 'Workspace', 'test.exe']

#os.path.getsize : ํ•ด๋‹น ๊ฒฝ๋กœ์˜ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
>>> os.path.getsize(path)
5

#os.listdir : ํ•ด๋‹น ๊ฒฝ๋กœ์˜ ํŒŒ์ผ ์ด๋ฆ„๋“ค์„ ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
>> os.listdir('/User/eunhye/Desktop/Workspace')
['test.exe']

#os.path.exists : ํ•ด๋‹น ๊ฒฝ๋กœ๊ฐ€ ์กด์žฌํ•  ๊ฒฝ์šฐ True, ์กด์žฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ False๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜
>>> os.path.exists('/Users/eunhye')
True
>>> os.path.exists('/Users/yeji')
False