gpt4 book ai didi

python fabric 运行 awk 命令返回 KeyError : 'print $1'

转载 作者:行者123 更新时间:2023-11-28 20:20:57 26 4
gpt4 key购买 nike

我正在使用 python fabric run 命令,它不起作用并给我一个 KeyError:

run('docker ps -a | grep {} | awk "{print $1}"'.format(container_name))
KeyError: 'print $1'

但是如果我用 %s 替换 .format,它就可以工作,这怎么可能:

run("docker ps -a | grep %s | awk '{print $1}'" % container_name)

我的 python 版本 2.7.8,".format()"肯定可以,它似乎与 "awk"命令有关。

最佳答案

Format 正在尝试替换 {print $1},当然没有这样的 key 。

您可以通过用 {} 围绕它们来转义 {},因此:

run('docker ps -a | grep {} | awk "{{print $1}}"'.format(container_name))

应该工作 - 作为测试:iPython 3.0:

In [1]: container_name = 'fred'

In [2]: 'docker ps -a | grep {} | awk "{{print $1}}"'.format(container_name)
Out[2]: 'docker ps -a | grep fred | awk "{print $1}"'

python :

Python 2.7.8 (default, Oct 20 2014, 15:05:19) 
[GCC 4.9.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> container_name = 'fred'
>>> 'docker ps -a | grep {} | awk "{{print $1}}"'.format(container_name)
'docker ps -a | grep fred | awk "{print $1}"'
>>>

关于python fabric 运行 awk 命令返回 KeyError : 'print $1' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29442867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com