【发布时间】:2017-05-11 14:00:24
【问题描述】:
我想在 python 脚本中运行 shell 命令。并将打印输出保存在列表或数组中。
例如shell命令的打印输出如下
root@cic-1:~# for i in $(neutron net-list | grep -i cscf2 | awk '{print $2}'); do neutron net-show $i | grep -i segmentation|awk '{print $4}' ; done
2006
2022
2023
2081
root@cic-1:~#
我希望将此打印输出保存在这样的列表中
[2006,2022,2023,2081]
我已经完成了如下的python代码
#!/usr/pkg/bin/python
import subprocess
vlans= subprocess.Popen ("for i in $(neutron net-list | grep -i cscf2 | awk '{print $2}'); do neutron net-show $i | grep -i segmentation|awk '{print $4}' ; done", shell=True, stdout=subprocess.PIPE).communicate()[0]
print vlans[0]
输出是 2 ,但是我希望 vlans[0] 是 2006
【问题讨论】:
-
看起来你想要
vlans.stdout的文件内容(见docs)。我不知道如何使用它(在 Python 中不强),但这是我在谷歌搜索时发现的 -
我已经尝试过使用 stdout.read() 但仍然不起作用。
-
问题是所有打印输出保存为一个长字符串