如何 运行 awk -F\' '{print $2}' inside subprocess.Popen in Python?
How to run awk -F\' '{print $2}' inside subprocess.Popen in Python?
我需要 运行 在 Python 中的 subprocess.Popen 中执行 shell 命令。
命令是:
$ virsh dumpxml server1 | grep 'source file' | awk -F\' '{print $2}'
输出为:
/vms/onion.qcow2
我在使用上述命令时遇到了两个挑战:
1) 命令在一个循环中,您看到 'server1' 的地方,它是一个将具有服务器名称的变量。
2) Python 抱怨 KeyError: 'print '
这是我目前的情况:
proc = subprocess.Popen(["virsh dumpxml {0} | grep 'source file' | awk -F\' '{print }'".format(vm)], stdout=subprocess.PIPE, shell=True)
stdout = proc.communicate()[0]
提前致谢。
虽然可以直接从 python 使用 libvirt,但您的问题是 {
是格式字符串,并且也在 awk
脚本中包围 print
,所以你必须像
这样逃避那些大括号
proc = subprocess.Popen(["virsh dumpxml {0} | grep 'source file' | awk -F\' '{{print }}'".format(vm)], stdout=subprocess.PIPE, shell=True)
stdout = proc.communicate()[0]
我需要 运行 在 Python 中的 subprocess.Popen 中执行 shell 命令。
命令是: $ virsh dumpxml server1 | grep 'source file' | awk -F\' '{print $2}'
输出为: /vms/onion.qcow2
我在使用上述命令时遇到了两个挑战:
1) 命令在一个循环中,您看到 'server1' 的地方,它是一个将具有服务器名称的变量。
2) Python 抱怨 KeyError: 'print '
这是我目前的情况:
proc = subprocess.Popen(["virsh dumpxml {0} | grep 'source file' | awk -F\' '{print }'".format(vm)], stdout=subprocess.PIPE, shell=True)
stdout = proc.communicate()[0]
提前致谢。
虽然可以直接从 python 使用 libvirt,但您的问题是 {
是格式字符串,并且也在 awk
脚本中包围 print
,所以你必须像
proc = subprocess.Popen(["virsh dumpxml {0} | grep 'source file' | awk -F\' '{{print }}'".format(vm)], stdout=subprocess.PIPE, shell=True)
stdout = proc.communicate()[0]