首页 > 解决方案 > 如何将ipython解释器中shell命令的结果传递回python变量

问题描述

我没有任何运气弄清楚如何做到这一点:

在 ipython 中,如果我执行以下命令

var = 'abc'
!echo $var | rev

它按预期工作。但是,如何将 shell 命令的输出捕获回 python 中的变量(如new_var = !echo $"var" | rev)?

我在这里尝试了大部分示例运行 shell 命令并捕获输出var但没有运气,因为当使用子进程库传递给许多解决方案中的任何一个时,该变量没有按预期工作。

标签: shellipython

解决方案


这实际上有效:

在 [99] 中:out =!echo $var | 转

输入[100]:输出输出[100]:['cba']

(问题是我的shell命令在一个for循环中,我正在逐行读取文件,我没想到那里有换行符,这导致|bash命令搞砸了。strip()每一行都有一个简单的,-这是我的var- 在它被传递给echo修复之前)


推荐阅读