source

python 내에서 명령줄 프로그램 실행

factcode 2022. 10. 23. 09:56
반응형

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

반응형