1. ホーム
  2. パイソン

[解決済み】python内部からコマンドライン・プログラムを実行する【重複

2022-03-27 01:53:30

質問

私は、サウンドファイルを操作する(パッド、ミックス、マージなど)ウェブアプリケーションを構築しています。 ソックス はまさに私が望むことをやってくれます。SoxはLinuxのコマンドラインプログラムで、Pythonのウェブアプリがリクエストごとに私のサーバーで新しいSoxプロセスを開始することに少し違和感を感じているんです。

import os
os.system('sox input.wav -b 24 output.aiff rate -v -L -b 90 48k')

このセットアップ全体は、私には少し不安定に見えます。

そこで質問ですが、python(または他のスクリプト言語)のWebアプリケーション内からコマンドライン・プログラムを実行するためのベストプラクティスは何でしょうか?

メッセージ・キューは、リクエスト・レスポンス・サイクル全体を回避するために実装する一つの方法でしょう。しかし、これらのことをよりエレガントにする他の方法はあるのでしょうか?

解決方法は?

その subprocess モジュールは、Python から他のプログラムを実行するための好ましい方法です。 os.system .

import subprocess
#subprocess.check_output(['ls', '-l'])  # All that is technically needed...
print(subprocess.check_output(['ls', '-l']))