【发布时间】:2015-11-01 05:39:06
【问题描述】:
我需要在 Python 中的 subprocess.Popen 中运行一个 shell 命令。
命令是: $ virsh dumpxml server1 | grep '源文件' | awk -F\' '{打印 $2}'
输出是: /vms/onion.qcow2
我对上述命令有两个挑战:
1) 该命令在一个循环中,在您看到“server1”的地方,它是一个变量,将有一个服务器名称。
2) Python 抱怨 KeyError: 'print $2'
这是我目前所拥有的:
proc = subprocess.Popen(["virsh dumpxml {0} | grep 'source file' | awk -F\' '{print $2}'".format(vm)], stdout=subprocess.PIPE, shell=True)
stdout = proc.communicate()[0]
提前致谢。
【问题讨论】:
-
您是否考虑过使用libvirt.org/python.html 直接访问libvirt 的东西?
标签: python shell python-2.7 awk subprocess