Gio*_*elm 23 python ipython python-2.7 ipython-notebook ipython-magic
我想在我的ipython Notebook中运行一个bash脚本,并将输出保存为python变量中的字符串,以便进一步操作.基本上我想将bash魔法的输出传递给变量,例如输出如下:
%%bash
some_command [options] foo bar
Run Code Online (Sandbox Code Playgroud)
Mat*_*DMo 34
怎么样使用这个:
myvar = !some_command --option1 --option2 foo bar
Run Code Online (Sandbox Code Playgroud)
而不是%%bash
魔术?使用该!
符号将以下命令作为shell命令运行,结果全部存储在其中myvar
.要运行多个命令并收集所有命令的输出,只需将快速shell脚本放在一起即可.
oLa*_*Las 16
为了完整性,如果您仍想使用%%bash
单元格魔法,则可以传递--out
和--err
标记以将输出从stdout和stderr重定向到您选择的变量.
%%bash --out output --err error
echo "hi, stdout"
echo "hello, stderr" >&2
Run Code Online (Sandbox Code Playgroud)
将输出存储在变量中output
,error
以便:
print(error)
print(output)
Run Code Online (Sandbox Code Playgroud)
将打印到python控制台:
hello, stderr
hi, stdout
Run Code Online (Sandbox Code Playgroud)
请注意@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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7765 次 |
最近记录: |