Ipython Notebookでbashスクリプトを実行し、出力を文字列としてpython変数に保存して、さらに操作できるようにします。基本的に、bashマジックの出力を変数にパイプします。たとえば、次のような出力です。
%%bash
some_command [options] foo bar
これを使用するのはどうですか?
myvar = !some_command --option1 --option2 foo bar
%%bash
魔法の代わりに? !
シンボルを使用すると、次のコマンドがシェルコマンドとして実行され、結果はすべてmyvar
に保存されます。複数のコマンドを実行し、それらすべての出力を収集するには、簡単なシェルスクリプトをまとめるだけです。
完全を期すために、%%bash
セルマジックを引き続き使用する場合は、--out
フラグと--err
フラグを渡して、出力をstdoutおよびstderrから選択した変数にリダイレクトできます。 。
doucumentation から:
%%bash --out output --err error
echo "hi, stdout"
echo "hello, stderr" >&2
出力を変数output
およびerror
に格納して、次のようにします。
print(error)
print(output)
pythonコンソールに出力します:
hello, stderr
hi, stdout
@MattDMo(SList
)と@oLas(str
)の回答の変数タイプの違いに注意してください。
In [1]: output = !whoami
In [2]: type(output)
Out[2]: IPython.utils.text.SList
In [3]: %%bash --out output
...: whoami
In [4]: type(output)
Out[4]: str