Python์์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์ ์ดํ๊ธฐ ์ํด์๋ subprocess ๋ชจ๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค. subprocess ๋ชจ๋์ ์ธ๋ถ ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ๊ทธ ์ถ๋ ฅ๊ฐ์ ๊ฐ์ ธ์ค๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
๋ค์์ Python์์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์๊ฒ ๋ช
๋ น์ ์ ์ดํ๋ ์์ ์ฝ๋์
๋๋ค.
import subprocess
# ์คํํ ๋ช
๋ น์ด
cmd = 'ls -al'
# shell=True๋ก ์ง์ ํ์ฌ ์
ธ ๋ช
๋ น์ด ์คํ
result = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE)
# ์คํ ๊ฒฐ๊ณผ ์ถ๋ ฅ
print(result.stdout.decode())
์ ์ฝ๋์์๋ subprocess.run() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ls -al ๋ช ๋ น์ด๋ฅผ ์คํํ๊ณ , ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ณ์ result์ ์ ์ฅํฉ๋๋ค. stdout=subprocess.PIPE๋ฅผ ์ง์ ํ์ฌ ๋ช ๋ น์ด์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ํ์ด์ฌ์์ ์ฌ์ฉํ ์ ์๋ ํํ๋ก ๊ฐ์ ธ์ต๋๋ค. result.stdout์๋ ์คํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ดํธ(byte) ํํ๋ก ์ ์ฅ๋์ด ์์ผ๋ฏ๋ก, decode() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด๋ก ๋ณํํฉ๋๋ค.
์ ์์ ์ฝ๋์์๋ ์ ธ ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ์์ง๋ง, subprocess ๋ชจ๋์ ์ฌ์ฉํ๋ฉด Python ์คํฌ๋ฆฝํธ์์ ์ง์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์คํํ ์๋ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ shell=True๋ฅผ ์ง์ ํ์ง ์์ต๋๋ค.
import subprocess
# ์คํํ ๋ช
๋ น์ด
cmd = ['echo', 'Hello, world!']
# ๋ช
๋ น์ด ์คํ
result = subprocess.run(cmd, stdout=subprocess.PIPE)
# ์คํ ๊ฒฐ๊ณผ ์ถ๋ ฅ
print(result.stdout.decode())
์ ์ฝ๋์์๋ subprocess.run() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ echo ๋ช ๋ น์ด๋ฅผ ์คํํ๊ณ , ์คํ ๊ฒฐ๊ณผ๋ฅผ ๋ณ์ result์ ์ ์ฅํฉ๋๋ค. stdout=subprocess.PIPE๋ฅผ ์ง์ ํ์ฌ ๋ช ๋ น์ด์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ํ์ด์ฌ์์ ์ฌ์ฉํ ์ ์๋ ํํ๋ก ๊ฐ์ ธ์ต๋๋ค. result.stdout์๋ ์คํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ดํธ(byte) ํํ๋ก ์ ์ฅ๋์ด ์์ผ๋ฏ๋ก, decode() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด๋ก ๋ณํํฉ๋๋ค.
์ด ์ธ์๋ subprocess ๋ชจ๋์ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฏ๋ก, ํ์์ ๋ฐ๋ผ์ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค.
'๐ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ ๋ณด] ์คํ๋ง๋ถํธ์ ํ์ด์ฌ์ ์ด์ฉํ์ฌ JSON ํต์ ํ๊ธฐ (0) | 2023.02.17 |
---|---|
[์ ๋ณด] ํ์ด์ฌ ๋คํธ์ํฌ ํต์ ํ๋ก๊ทธ๋๋ฐ ์ข ๋ฅ ๋ฐ ์์ (0) | 2023.02.15 |
[์ ๋ณด] JavaScript์์ HTTP ์์ฒญ์ ๋ง๋๋ ๋ฐฉ๋ฒ (0) | 2023.02.15 |
[์ ๋ณด] ์ ํจ์ค ํ์ฉ ๋ฐฉ๋ฒ (0) | 2023.02.15 |
[์ ๋ณด] ํ์ด์ฌ ํ์ผ ์ธ์ฝ๋ฉ ๋ณํ ํจ์ (0) | 2023.02.15 |