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

为什么会这样!!在Python中,运行命令,但将输出放在括号中,python,ipython,Python,Ipython,typeo产生了一个意想不到的结果,为了以防万一,我想了解它 !!C:/myPythonPath/pythonscript/event.py 单从Python内部运行命令(DOS、LINUX、通常可以从命令行执行的其他命令),在本例中,使用Python2.7的Jupyter笔记本单元 我错误地键入了两个感叹号,令人惊讶的是,代码仍然有效,但我的输出显示在方括号内,如所示: [我的程序输出] 更重要的是,演示文稿看起来像是将输出放在了一个列表中。以下是一个例子: ['---------------

typeo产生了一个意想不到的结果,为了以防万一,我想了解它

!!C:/myPythonPath/pythonscript/event.py

从Python内部运行命令(DOS、LINUX、通常可以从命令行执行的其他命令),在本例中,使用Python2.7的Jupyter笔记本单元

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

[我的程序输出]

更重要的是,演示文稿看起来像是将输出放在了一个列表中。以下是一个例子:

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

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

由@user2357112提供的评论给出了答案。诚然,你必须在一大堆其他有用的主题中找到它,而解决这个问题的实际语法在文章中并没有明确说明

答案是:是的,
转换
的输出编码到列表中。但是试图从
中捕获它,如下面的链接所示,似乎不起作用

同样从@user2357112开始,此语法(不使用
!!
)将达到预期效果(运行命令并将其捕获到列表中):

x=%sx回显“一些文本”

打印
x
,您将获得:
[“一些文本”]

更多阅读链接,以免被淹没在评论中:


  • 谷歌搜索或立即找到答案。有时这一切都取决于你如何搜索。谢谢除非情况发生了变化,否则您无法实际捕获
    变量中的输出,这使得语法甚至存在有点奇怪。要捕获列表,您需要使用
    %sx
    魔术:
    x=%sx echo“some text”
    。在Python 2.7上测试上面的代码,您可能会明白为什么我认为它有效。在第一次运行时,它做了预期的事情。在重新运行时,我得到一个错误,即变量中存储的echo无法识别。Python有这种奇怪的工作方式,即使代码被破坏一两次,然后让您感到惊讶。继续进行更多测试,然后决定是否编辑或删除此帖子。