为什么 !!在Python中运行命令,但将输出括在括号

时间:2017-03-27 22:32:52

标签: python ipython

一个typeo产生了意想不到的结果,以防它有用,我想了解它。

!!C:/myPythonPath/python script/event.py

!从Python中运行命令(DOS,LINUX,通常可以从命令行执行的其他命令),在本例中,使用Python 2.7的Jupyter Notebook单元。

我错误地键入了两个惊叹号,令人惊讶的是,代码仍然有效,但我的输出显示在方括号内,如:

[ output of my program ]

此外,演示文稿看起来像是将输出放在列表中。这是一个例子:

['------------------------------',
 'Unknown Event: Django Girls Bucaramanga, Colombia',
 '    Time    :  08 April – 09 April  2017',
 '    Location: Bucaramanga, Colombia',
 '------------------------------',
 'Upcoming Event: Python ... ]

如果这是一个真正的列表,有没有办法捕获它以供以后在调用脚本的程序中使用?我尝试将x =添加到原始行中,但这对我不起作用。也许我没有正确设置这条线。有没有办法做到这一点?这只是好奇心。

1 个答案:

答案 0 :(得分:1)

@ user2357112提供的评论得到了答案。不可否认,你必须在其他有用主题的海洋中找到它,并且在写作中没有明确说明解决问题的实际语法。

答案:是的,!!确实会将!的输出转换为列表。但是尝试从!!捕获它,如下面的链接所示,这似乎不起作用。

再次来自@ user2357112,此语法(不使用!!)将达到预期效果(运行命令并将其捕获到列表中):

x = %sx echo "some text"

打印x,您将获得: ["some text"]

更多阅读的链接,以免他们被埋没在评论中:

  1. https://www.datacamp.com/community/blog/ipython-jupyter#gs.ImXit1s
  2. https://ipython.org/ipython-doc/3/interactive/reference.html#manual-capture-of-command-output-and-magic-output