Python에서 Bash 명령 실행

Muhammad Waiz Khan 2023년1월30일
  1. subprocess모듈의run()메소드를 사용하여 Python에서 Bash 명령 실행
  2. subprocess모듈의Popen()메소드를 사용하여 Python에서 Bash 명령 실행
Python에서 Bash 명령 실행

이 튜토리얼은 Python에서 bash 명령을 실행하는 다양한 방법을 설명합니다. Bash는 Linux 및 Unix 운영 체제에서 사용되는 쉘 또는 명령 언어 인터프리터입니다. 그리고 bash 명령은 현재 디렉토리를 변경하는cd명령, 새 디렉토리를 만드는mkd명령, 그리고ls명령과 같은 특정 작업을 수행하기 위해 사용자가 운영 체제로 보내는 명령입니다. 디렉토리의 파일 및 하위 디렉토리 등을 나열합니다.

subprocess모듈의run()메소드를 사용하여 Python에서 Bash 명령 실행

subprocess모듈의run()메소드는 문자열로 전달 된 명령을받습니다. 출력 또는 명령의 출력 오류를 얻으려면stdout인수와stderr인수를PIPE로 설정해야합니다. run메소드는stdout,stderrreturncode를 속성으로 포함하는 완료된 프로세스를 리턴합니다.

코드 예제 코드는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()stdoutstderr인수를 설정하여 명령의 출력 및 오류를 가져와야합니다. 그리고 출력과 오류는process.communicate메소드를 사용하여 반환 된 프로세스 객체를 통해 액세스 할 수 있습니다.

아래 코드 예제는Popen()메소드를 사용하여 bash 명령을 실행하는 방법과stdoutstderr값을 가져온 다음 Python에서 프로세스를 종료하는 방법을 보여줍니다.

from subprocess import PIPE

process = subprocess.Popen("ls", stdout=PIPE, stderr=PIPE)
output, error = process.communicate()
print(output)
process.kill