python 내에서 명령줄 프로그램 실행
사운드 파일(패드, 믹스, 머지 등)을 조작할 수 있는 웹 어플리케이션을 만들고 있는데, Sox가 제가 원하는 대로 동작한다는 것을 알게 되었습니다.Sox는 Linux 명령줄 프로그램입니다.python 웹 앱이 요청마다 서버에서 새로운 sox 프로세스를 시작하는 것이 조금 불편합니다.
예제:
import os
os.system('sox input.wav -b 24 output.aiff rate -v -L -b 90 48k')
내가 보기엔 이 모든 게 좀 불안정한 것 같아.
그래서 질문입니다.파이썬(또는 스크립트 언어) 웹 앱 내에서 명령줄 프로그램을 실행하기 위한 베스트 프랙티스는 무엇입니까?
메시지 큐는 요구 응답 사이클 전체를 회피하기 위해 구현해야 할1가지입니다하지만 이런 것들을 좀 더 우아하게 만들 수 있는 다른 방법이 있을까요?
이 모듈은 Python에서 다른 프로그램을 실행하는데 선호되는 방법입니다. - 훨씬 더 유연하고 사용하기 좋습니다.os.system
.
import subprocess
#subprocess.check_output(['ls', '-l']) # All that is technically needed...
print(subprocess.check_output(['ls', '-l']))
내가 보기엔 이 모든 게 좀 불안정한 것 같아.
명령줄 백엔드를 통한 GUI 프런트엔드에 대해 ffmpegx 담당자에게 문의하십시오.그것은 그들을 괴롭히지 않는 것 같다.
실제로 명령줄 백엔드를 통한 GUI(또는 웹) 프런트엔드는 GUI와 명령어 사이에 매우 깨끗한 인터페이스가 있기 때문에 실제로 더 안정적입니다.이 명령어는 웹과는 다른 속도로 전개될 수 있습니다.커맨드라인 옵션이 호환성이 있는 한 중단될 가능성은 없습니다.
서버의 퍼포먼스가 걱정되는 경우는, 실행중의 삭스 프로세스의 수를 상한으로 하는 것을 검토해 주세요.상한에 도달한 경우 언제든지 요청을 캐시하고 애플리케이션에 맞는 방식으로 완료되면 사용자에게 알릴 수 있습니다.
또는 db 및 callsox에서 요구를 풀하는 다른 머신에 n개의 worker 스크립트를 설정하여 출력 파일을 필요한 위치에 푸시합니다.
Sox에 대해서는 잘 모릅니다만, 커맨드 라인으로 프로그램을 반복 호출하는 것이 아니라, 서비스로 셋업하여 요청에 따라 접속할 수 있습니까?sqlite 등의 접속 인터페이스를 참조하여 영감을 얻을 수 있습니다.
언급URL : https://stackoverflow.com/questions/450285/executing-command-line-programs-from-within-python
'source' 카테고리의 다른 글
Python 요청에서 보안 인증서 검사를 비활성화하려면 어떻게 해야 합니까? (0) | 2022.10.23 |
---|---|
ReadableStream 개체에서 데이터를 검색하시겠습니까? (0) | 2022.10.23 |
유니언 쿼리를 카운트하는 방법 (0) | 2022.10.14 |
MySQL의 현재 시간대를 얻으려면 어떻게 해야 합니까? (0) | 2022.10.14 |
Python/Json:큰따옴표로 둘러싸인 속성 이름이 필요합니다. (0) | 2022.10.14 |