这对我来说毫无意义。我定义了 5 个变量:
a='a'
b='b'
c='c'
d='d'
e='e'
然后我尝试使用这些变量构建命令:
command = "for i in \`python {0}_getSyslogs.py {1} {2} {3}\`\ndo\ngunzip -c {3}/\$i | egrep -i '{4}' >> " .format(a,b,c,d,e)
这按预期工作,结果命令是:
"for i in \\`python a_getSyslogs.py b c d\\`\ndo\ngunzip -c d/\\$i | egrep -i 'e' >> "
令我困惑的是,如果我在字符串中再添加一个组件(即“test”),整个事情就会分崩离析,因为不再进行替换:
command = "for i in \`python {0}_getSyslogs.py {1} {2} {3}\`\ndo\ngunzip -c {3}/\$i | egrep -i '{4}' >> " + "test" .format(a,b,c,d,e)
生成的命令如下:
"for i in \\`python {0}_getSyslogs.py {1} {2} {3}\\`\ndo\ngunzip -c {3}/\\$i | egrep -i '{4}' >> test"
这可能是一个“只见树木不见森林”的问题,但我一直在尝试各种不同的组合,但没有任何效果。
我在 CentOS 上运行 python 2.7.10:
block 引用> block 引用>sys.version '2.7.10 (default, Oct 6 2017, 22:29:07) \n[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)]'
我做错了什么?
最佳答案
您仅对“test”字符串应用format
函数。
尝试:
command = "for i in \`python {0}_getSyslogs.py {1} {2} {3}\`\ndo\ngunzip -c {3}/\$i | egrep -i '{4}' >> test" .format(a,b,c,d,e)
关于python .format 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50649316/