728x90
[Python] Shell에 명령어 전달하기
🤔 Python에서 리눅스 쉘 커맨드를 실행하고 리턴 값을 받기 위해선 어떻게 해야할까?
os.system
os.system()에 전달된 명령어를 실행
결과는 콘솔에 출력됨
import os
os.system("echo 'hello world'")
$ python3 test.py
hello world
os.popen
os.popen()에 전달된 명령어를 실행
결과는 콘솔에 출력되지 않고, 변수를 통해 받을 수 있음
import os
a = os.popen("echo 'hello world'")
print(a.read())
$ python3 test.py
hello world
subprocess
subprocess를 이용해 쉘 커맨드를 실행 할 수 있음
import subprocess
cmd = "echo 'hello world'"
subprocess.run(cmd, shell=True)
$ python3 test.py
hello world
실행 결과를 리턴 받을 수도 있음
import subprocess
cmd = "echo 'hello world'"
result = subprocess.run(cmd, stdout=subprocess.PIPE, text=True, shell=True)
print(result.stdout)
쉘 스크립트 실행도 가능
import subprocess
subprocess.run(["/path/scrpit.sh", "arguments"], shell=True)
참조
반응형
'👩💻 Develope > Python' 카테고리의 다른 글
[Pandas] 데이터 프레임의 컬럼을 DB 테이블에 검색하기 (0) | 2023.04.14 |
---|---|
[Python] 리스트의 요소를 분리하기 (0) | 2023.04.13 |
[Python] 매개 변수와 람다(lambda) 표현식 (0) | 2023.04.10 |
[Python] 민감 정보 분리해서 사용하기 (config 파일 분리) (0) | 2023.04.07 |
[Pandas] 데이터프레임 정렬하기 (0) | 2023.04.06 |