8.1 ๋ผ์ด๋ธ๋ฌ๋ฆฌ os
Python์๋ os
์ platform
๋ผ๋ ๋ด์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ด. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ด์์ฒด์ ์์ ์ํธ์์ฉ๊ณผ ์ด์์ฒด์ ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํด.
์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ํ์ผ ์์คํ , ํ๋ก์ธ์ค, ํ๊ฒฝ ๋ณ์ ๋ฐ ์ด์์ฒด์ ์ ๋ค๋ฅธ ์ธก๋ฉด๊ณผ ๊ด๋ จ๋ ์์ ์ ์ํํ ์ ์๊ฒ ํด์ค. ์ง๊ธ์ ๋ช ๊ฐ์ง ๊ธฐ๋ฅ์ ์ดํด๋ณผ ๊ฑฐ์ผ.
๋ผ์ด๋ธ๋ฌ๋ฆฌ os
os
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด์์ฒด์ ์์ ์ํธ์์ฉ์ ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํด. ํ์ผ ์์คํ
, ํ๋ก์ธ์ค ๊ด๋ฆฌ, ํ๊ฒฝ ๋ณ์ ๋ฑ๊ณผ ๊ด๋ จ๋ ์์
์ ์ํํ ์ ์์ด.
ํ์ฌ ์์ ๋๋ ํ ๋ฆฌ ์ป๊ธฐ:
import os
cwd = os.getcwd()
print("Current Working Directory:", cwd) # ํ์ฌ ์์
๋๋ ํ ๋ฆฌ
ํ์ฌ ์์ ๋๋ ํ ๋ฆฌ ๋ณ๊ฒฝ:
os.chdir('/path/to/directory') # ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก๋ก ๋ณ๊ฒฝ
์ ๋๋ ํ ๋ฆฌ ์์ฑ:
os.mkdir('new_directory') # ์๋ก์ด ๋๋ ํ ๋ฆฌ ์์ฑ
๋๋ ํ ๋ฆฌ ์ญ์ :
os.rmdir('new_directory') # ๋๋ ํ ๋ฆฌ ์ญ์
ํ์ผ ๋ฐ ๋๋ ํ ๋ฆฌ ๋ชฉ๋ก:
files = os.listdir('.')
print("Files and directories:", files) # ํ์ผ๊ณผ ๋๋ ํ ๋ฆฌ ๋ชฉ๋ก
ํ: ๋๋ ํ ๋ฆฌ, ์นดํ๋ก๊ทธ, ํด๋๋ผ๋ ์ฉ์ด๋ ์ฌ์ค ๊ฐ์ ๊ฑธ ์๋ฏธํด. ๊ทธ๋ฅ ๋ค๋ฅธ ์ด์์ฒด์ ์์ ์จ ์ฉ์ด์ผ ๋ฟ์ด์ผ.
ํ๊ฒฝ ๋ณ์์ ์์ ํ๋ ๋ฒ์ ๋ฐฐ์ฐ๋ ๊ฒ๋ ์ ์ฉํ ๊ฑฐ์ผ. ํ๊ฒฝ ๋ณ์๋ ์ด์์ฒด์ ์ ๋ณ์ ๊ฐ์ ๊ฑฐ๋ผ์, ํ๋ก๊ทธ๋จ์์ ์ฝ๊ฑฐ๋ ์ค์ ํ ์ ์์ด.
ํ๊ฒฝ ๋ณ์์ ๊ฐ ์ป๊ธฐ:
home_dir = os.getenv('HOME')
print("Home Directory:", home_dir) # ํ ๋๋ ํ ๋ฆฌ
ํ๊ฒฝ ๋ณ์์ ๊ฐ ์ค์ :
os.environ['MY_VAR'] = 'my_value' # ํ๊ฒฝ ๋ณ์ ์ค์
8.2 ๋ผ์ด๋ธ๋ฌ๋ฆฌ platform
platform
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Python์ด ์คํ๋๋ ํ๋ซํผ ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํด. ์ด์์ฒด์ , CPU ์ํคํ
์ฒ, Python ๋ฒ์ ๋ฑ์ ์ ๋ณด๋ฅผ ์ ์ ์์ด.
๋ผ์ด๋ธ๋ฌ๋ฆฌ platform
์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ
์ด์์ฒด์ :
import platform
os_name = platform.system()
print("Operating System:", os_name) # ์ด์์ฒด์
๋คํธ์ํฌ์์์ ์ปดํจํฐ ์ด๋ฆ (hostname)
:
node_name = platform.node()
print("Node Name:", node_name) # ๋
ธ๋ ์ด๋ฆ
์ด์์ฒด์ ๋ฆด๋ฆฌ์ฆ:
os_release = platform.release()
print("OS Release:", os_release) # ์ด์์ฒด์ ๋ฆด๋ฆฌ์ฆ
์ด์์ฒด์ ๋ฒ์ :
os_version = platform.version()
print("OS Version:", os_version) # ์ด์์ฒด์ ๋ฒ์
CPU ์ํคํ ์ฒ:
architecture = platform.architecture()
print("Architecture:", architecture) # ์ํคํ
์ฒ
ํ๋ก์ธ์ ํ์ :
processor = platform.processor()
print("Processor:", processor) # ํ๋ก์ธ์
Python ๋ฒ์ :
python_version = platform.python_version()
print("Python Version:", python_version) # Python ๋ฒ์
Python ์ปดํ์ผ๋ฌ:
python_compiler = platform.python_compiler()
print("Python Compiler:", python_compiler) # Python ์ปดํ์ผ๋ฌ
์์ง๋ ๊ถ๊ธํ๋ค๋ฉด, ์ด ์ฝ๋๋ฅผ ์คํํด์ ๋ค ์ปดํจํฐ๋ฅผ ํ๋ก๊ทธ๋จ์ ๋์ผ๋ก ํ ๋ฒ ๋ด๋ด:
import platform
print("Operating System:", platform.system())
print("Node Name:", platform.node())
print("OS Release:", platform.release())
print("OS Version:", platform.version())
print("Machine:", platform.machine())
print("Processor:", platform.processor())
print("Architecture:", platform.architecture())
print("Python Version:", platform.python_version())
print("Python Compiler:", platform.python_compiler())
8.3 ๋ผ์ด๋ธ๋ฌ๋ฆฌ sys
๋ผ์ด๋ธ๋ฌ๋ฆฌ sys
๋ Python ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ผ๋ถ์ด๊ณ , Python ์ธํฐํ๋ฆฌํฐ์ ์ํธ์์ฉํ๋ ๋ณ์์ ํจ์์ ๋ํ ์ ๊ทผ์ ์ ๊ณตํด. ์คํ ํ๊ฒฝ ์ ๋ณด ์ป๊ธฐ, ์คํฌ๋ฆฝํธ ์คํ ํ๋ก์ธ์ค ๊ด๋ฆฌ, ์์คํ
์ ๋ค์ํ ์ปดํฌ๋ํธ์์ ์ํธ์์ฉ์ ์ ์ฉํด.
์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก๊ทธ๋จ์ด ์ฌ๋ฏธ์๋ ๊ฒ๋ค์ ํ ์ ์์ด.
1. ๋ช ๋ น์ค ์ธ์
sys
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ sys.argv
๋ฆฌ์คํธ๋ฅผ ํตํด ์คํฌ๋ฆฝํธ์ ์ ๋ฌ๋ ๋ช
๋ น์ค ์ธ์๋ฅผ ๋ฐ์ ์ ์๊ฒ ํด์ค.
2. ํ๋ก๊ทธ๋จ ์ข ๋ฃ
ํจ์ sys.exit()
๋ ์ฃผ์ด์ง ์ข
๋ฃ ์ํ ์ฝ๋์ ํจ๊ป ํ๋ก๊ทธ๋จ ์คํ์ ์ข
๋ฃํ๊ฒ ํด. 0์ ๋ณดํต ์ฑ๊ณต์ ์ธ ์ข
๋ฃ๋ฅผ ์๋ฏธํ๊ณ , 0์ด ์๋ ๊ฐ์ ์ค๋ฅ๋ฅผ ๋ํ๋ด.
import sys
if len(sys.argv) < 2:
print("์ค๋ฅ: ์ธ์๊ฐ ์ถฉ๋ถํ์ง ์์")
sys.exit(1)
print("๋ชจ๋ ์ธ์๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ง์ ๋จ")
sys.exit(0)
3. ๋ชจ๋ ๊ฒ์ ๊ฒฝ๋ก
sys.path
๋ฆฌ์คํธ๋ Python ์ธํฐํ๋ฆฌํฐ๊ฐ ๋ชจ๋์ ์ฐพ๊ธฐ ์ํด ๊ฒ์ํ๋ ๊ฒฝ๋ก๋ฅผ ํฌํจํด. ๋ชจ๋ ๊ฒ์์ ์ค์ ํ๊ธฐ ์ํด ์ด ๋ฆฌ์คํธ์ ์ ๊ฒฝ๋ก๋ฅผ ์ถ๊ฐํ ์ ์์ด.
import sys
print("๋ชจ๋ ๊ฒ์ ๊ฒฝ๋ก:")
for path in sys.path:
print(path)
# ์๋ก์ด ๊ฒฝ๋ก ์ถ๊ฐ
sys.path.append('/path/to/my/modules')
print("์
๋ฐ์ดํธ๋ ๋ชจ๋ ๊ฒ์ ๊ฒฝ๋ก ๋ฆฌ์คํธ:", sys.path)
4. ์์คํ ์ ๋ณด
sys
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Python๊ณผ ์ธํฐํ๋ฆฌํฐ์ ๋ํ ์ ๋ณด๋ฅผ ์ ๊ณตํด, ์๋ฅผ ๋ค์ด Python ๋ฒ์ ๊ณผ ํ๋ซํผ ๊ฐ์ ๊ฒ๋ค.
import sys
# Python ๋ฒ์
print("Python ๋ฒ์ :", sys.version)
# ํ๋ซํผ ์ ๋ณด
print("ํ๋ซํผ:", sys.platform)
# int ํฌ๊ธฐ (๋ฐ์ดํธ ๋จ์)
print("int ํฌ๊ธฐ:", sys.getsizeof(0), "๋ฐ์ดํธ")
5. ์ค์น๋ ๋ชจ๋
sys.modules
๋ ๋ก๋๋ ๋ชจ๋ ๋ชจ๋์ ๋ํ ์ ๋ณด๋ฅผ ํฌํจํ๋ ๋์
๋๋ฆฌ์ผ. ๋ก๋๋ ๋ชจ๋์ ๋ํ ์ ๋ณด๋ฅผ ์ป๊ฑฐ๋ ๋ค์ ์ํฌํธํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ด.
import sys
# ๋ก๋๋ ๋ชจ๋ ๋ฆฌ์คํธ
print("๋ก๋๋ ๋ชจ๋๋ค:")
for module in sys.modules:
print(module)
GO TO FULL VERSION