Python 内からコマンドラインプログラムを実行する [重複] 質問する

Python 内からコマンドラインプログラムを実行する [重複] 質問する

私はサウンドファイルを操作(パッド、ミックス、マージなど)する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']))

おすすめ記事