파이썬에서 명령 행 프로그램 실행하기 [중복]
가능한 중복 :
파이썬에서 외부 명령 호출
나는 사운드 파일을 조작 (패드, 믹싱, 병합 등) 할 웹 응용 프로그램을 만들고 있는데 삭스 는 내가 원하는 것을 정확하게 수행 한다는 것을 알았습니다. Sox는 리눅스 커맨드 라인 프로그램이며 파이썬 웹 응용 프로그램이 요청별로 서버에서 새로운 sox 프로세스를 시작하는 것이 약간 불편하다고 생각합니다.
예:
import os
os.system('sox input.wav -b 24 output.aiff rate -v -L -b 90 48k')
이 전체 설정은 나에게 약간 불안정한 것 같습니다.
그래서 내 질문은 파이썬 (또는 모든 스크립팅 언어) 웹 응용 프로그램에서 명령 줄 프로그램을 실행하는 가장 좋은 방법은 무엇입니까?
메시지 큐는 전체 요청 응답주기를 극복하기 위해 구현해야 할 사항입니다. 그러나 이러한 것들을 더 우아하게 만드는 다른 방법이 있습니까?
이 subprocess
모듈은 파이썬에서 다른 프로그램을 실행하는 데 선호되는 방식으로,보다 유연하고 사용하기 쉽습니다 os.system
.
import subprocess
#subprocess.check_output(['ls','-l']) #all that is technically needed...
print subprocess.check_output(['ls','-l'])
"이 전체 설정은 약간 불안정한 것 같습니다."
ffmpegx 사람들에게 명령 행 백엔드를 통한 GUI 프론트 엔드 사용에 대해 이야기하십시오 . 그들을 귀찮게하지 않는 것 같습니다.
실제로 GUI와 명령 사이의 인터페이스가 매우 깨끗하기 때문에 명령 줄 백엔드를 통한 GUI (또는 웹) 프런트 엔드가 실제로 더 안정적이라고 생각합니다. 명령 줄 옵션이 호환되는 한 명령이 웹과 다른 속도로 발전 할 수 있습니다.
나는 sox에 익숙하지 않지만 프로그램을 명령 줄로 반복적으로 호출하는 대신 서비스로 설정하고 요청을 위해 연결할 수 있습니까? 영감을 얻기 위해 sqlite 와 같은 연결 인터페이스를 살펴볼 수 있습니다 .
서버 성능이 걱정된다면 실행중인 sox 프로세스 수를 제한하십시오. 한도에 도달 한 경우 항상 요청을 캐시하고 응용 프로그램에 적합한 방식으로 요청이 완료되면 사용자에게 알릴 수 있습니다.
또는 db에서 요청을 가져 와서 sox를 호출하는 다른 시스템에 n 작업자 스크립트를두고 결과 출력 파일을 필요한 위치로 푸시하십시오.
참고 URL : https://stackoverflow.com/questions/450285/executing-command-line-programs-from-within-python
'IT' 카테고리의 다른 글
MySQL Orderby 숫자, Nulls 마지막 (0) | 2020.04.01 |
---|---|
스크롤보기 내부의 Android 목록보기 (0) | 2020.04.01 |
결제 처리기-웹 사이트에서 신용 카드를 수락하려면 무엇을 알아야합니까? (0) | 2020.04.01 |
XML 파싱을위한 최고의 노드 모듈 (0) | 2020.04.01 |
인증 및 권한 부여 실패로 AuthorizeAttribute가 로그인 페이지로 리디렉션되는 이유는 무엇입니까? (0) | 2020.04.01 |