Python を使用して、コマンドを受け取り、stdio 出力を返す単純な「仮想 bash」スクリプトを作成したいと考えています。このようなもの:
>>> output = bash('ls')
>>> print output
file1 file2 file3
>>> print bash('cat file4')
cat: file4: No such file or directory
これを可能にするモジュール/関数を知っている人はいますか? 見つかりませんでした。
Python を使用して、コマンドを受け取り、stdio 出力を返す単純な「仮想 bash」スクリプトを作成したいと考えています。このようなもの:
>>> output = bash('ls')
>>> print output
file1 file2 file3
>>> print bash('cat file4')
cat: file4: No such file or directory
これを可能にするモジュール/関数を知っている人はいますか? 見つかりませんでした。
このsubprocess
モジュールには、すべての問題に対する答えが含まれています。特に、check_output
あなたが望むことを正確に行うようです。ページの例:
>>> subprocess.check_output(["echo", "Hello World!"])
'Hello World!\n'
>>> subprocess.check_output("exit 1", shell=True)
Traceback (most recent call last):
...
subprocess.CalledProcessError: Command 'exit 1' returned non-zero exit status 1
shell が True の場合、指定されたコマンドがシェルを通じて実行されます。これは、ほとんどのシステム シェルで提供される強化された制御フローのために主に Python を使用していて、ファイル名のワイルドカード、シェル パイプ、環境変数の展開などの他のシェル機能にアクセスしたい場合に便利です。