Python에서 Bash 명령 실행
이 튜토리얼은 Python에서 bash 명령을 실행하는 다양한 방법을 설명합니다. Bash는 Linux 및 Unix 운영 체제에서 사용되는 쉘 또는 명령 언어 인터프리터입니다. 그리고 bash 명령은 현재 디렉토리를 변경하는cd
명령, 새 디렉토리를 만드는mkd
명령, 그리고ls
명령과 같은 특정 작업을 수행하기 위해 사용자가 운영 체제로 보내는 명령입니다. 디렉토리의 파일 및 하위 디렉토리 등을 나열합니다.
subprocess
모듈의run()
메소드를 사용하여 Python에서 Bash 명령 실행
subprocess
모듈의run()
메소드는 문자열로 전달 된 명령을받습니다. 출력 또는 명령의 출력 오류를 얻으려면stdout
인수와stderr
인수를PIPE
로 설정해야합니다. run
메소드는stdout
,stderr
및returncode
를 속성으로 포함하는 완료된 프로세스를 리턴합니다.
코드 예제 코드는run()
메소드를 사용하여 Python에서 bash 명령을 실행하는 방법을 보여줍니다.
from subprocess import PIPE
comp_process = subprocess.run("ls", stdout=PIPE, stderr=PIPE)
print(comp_process.stdout)
subprocess
모듈의Popen()
메소드를 사용하여 Python에서 Bash 명령 실행
subprocess
모듈의Popen()
메소드는run()
메소드와 기능이 비슷하지만 사용하기가 까다 롭습니다. run()
메소드와 달리Popen()
메소드는 완료된 프로세스 객체를 출력으로 반환하지 않으며Popen()
메소드에 의해 시작된 프로세스는 별도로 처리해야하므로 까다로워집니다. 사용하다.
완료된 프로세스 대신Popen()
메소드는 프로세스 객체를 출력으로 반환합니다. 반환 된 프로세스는process.kill()
또는process.terminate()
메소드를 사용하여 종료해야합니다.
run()
메소드와 마찬가지로Popen()
의stdout
및stderr
인수를 설정하여 명령의 출력 및 오류를 가져와야합니다. 그리고 출력과 오류는process.communicate
메소드를 사용하여 반환 된 프로세스 객체를 통해 액세스 할 수 있습니다.
아래 코드 예제는Popen()
메소드를 사용하여 bash 명령을 실행하는 방법과stdout
및stderr
값을 가져온 다음 Python에서 프로세스를 종료하는 방법을 보여줍니다.
from subprocess import PIPE
process = subprocess.Popen("ls", stdout=PIPE, stderr=PIPE)
output, error = process.communicate()
print(output)
process.kill