私はサウンドファイルを操作(パッド、ミックス、マージなど)するWebアプリケーションを構築していますが、ソックスまさに私が望んでいることを実行します。Sox は Linux のコマンド ライン プログラムであり、Python Web アプリがリクエストごとにサーバー上で新しい Sox プロセスを開始することに少し不安を感じています。
例:
import os
os.system('sox input.wav -b 24 output.aiff rate -v -L -b 90 48k')
この設定全体が少し不安定に思えます。
そこで質問なのですが、Python (または任意のスクリプト言語) Web アプリ内からコマンド ライン プログラムを実行するためのベスト プラクティスは何でしょうか?
メッセージ キューは、リクエスト応答サイクル全体を回避するために実装する 1 つの方法です。しかし、これらをよりエレガントにする方法は他にありますか?
ベストアンサー1
のsubprocess
モジュールは、Python から他のプログラムを実行するための推奨される方法です。 よりもはるかに柔軟で使いやすいですos.system
。
import subprocess
#subprocess.check_output(['ls', '-l']) # All that is technically needed...
print(subprocess.check_output(['ls', '-l']))