34

ipython Notebook で bash スクリプトを実行し、出力を文字列として python 変数に保存して、さらに操作したいと考えています。基本的に、bash マジックの出力を変数にパイプします。たとえば、次のような出力です。

%%bash
some_command [options] foo bar
4

3 に答える 3

59

これを使用するのはどうですか:

myvar = !some_command --option1 --option2 foo bar

%%bash魔法の代わり?記号を使用すると!、次のコマンドがシェル コマンドとして実行され、結果はすべて に保存されmyvarます。複数のコマンドを実行し、それらすべての出力を収集するには、簡単なシェル スクリプトを作成するだけです。

于 2013-12-20T13:04:02.927 に答える
23

%%bash完全を期すために、まだセル マジックを使用したい場合は、--outおよび--errフラグを渡して、stdout および stderr からの出力を選択した変数にリダイレクトできます。

ドキュメントから:

%%bash --out output --err error
echo "hi, stdout"
echo "hello, stderr" >&2

output出力を変数に保存するため、次のerrorようになります。

print(error)
print(output)

Pythonコンソールに出力されます:

hello, stderr
hi, stdout
于 2014-07-16T08:38:54.637 に答える
7

SList@MattDMo ( ) と @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
于 2016-09-30T00:49:05.143 に答える