我需要在Python的subprocess.Popen中运行shell命令。
命令是: $virsh dumpxml服务器1 | grep“源文件”| awk-F“{打印$2}”
输出为: /vms/洋葱.qcow2
我对上面的命令有两个挑战:
1)该命令位于循环中,在您看到“server1”的地方,它是一个具有服务器名称的变量。
2)Python抱怨KeyError:“打印$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]
提前谢谢。
虽然可以直接从python中使用libvirt,但您的问题是
{
是格式字符串,并且在awk
脚本中也环绕着print $2
,因此必须对这些大括号进行转义,如相关问题 更多 >
编程相关推荐