Lia*_*odi 2 python fabric docker
我正在使用python fabric run命令,它不起作用并给我一个KeyError:
run('docker ps -a | grep {} | awk "{print $1}"'.format(container_name))
KeyError: 'print $1'
Run Code Online (Sandbox Code Playgroud)
但是,如果我用%s替换.format,它可以工作,那怎么可能:
run("docker ps -a | grep %s | awk '{print $1}'" % container_name)
Run Code Online (Sandbox Code Playgroud)
我的python版本2.7.8,".format()"肯定可以工作,它似乎与"awk"命令有关.
格式试图替代{print $1},当然没有这样的密钥.
您可以使用{}围绕它们来逃避{},这样:
run('docker ps -a | grep {} | awk "{{print $1}}"'.format(container_name))
Run Code Online (Sandbox Code Playgroud)
应该工作 - 作为测试: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}"'
Run Code Online (Sandbox Code Playgroud)
蟒蛇:
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}"'
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1650 次 |
| 最近记录: |