我正在尝试编写一段python代码,它将编写一段CMake代码...
但是当我进入以下阶段时:
def_desc = "blaa" s = " FILE(WRITE ${CONFIG_H} \"/* {0} */\\n\")\n".format(def_desc)
然后python对我大吼:
Traceback (most recent call last): File "/home/ferencd/tmp/blaa.py", line 2, ins = " FILE(WRITE ${CONFIG_H} \"/* {0} */\\n\")\n".format(def_desc) KeyError: 'CONFIG_H' [Finished in 0.0s with exit code 1]
我明白,不知何故,解释器认为这{CONFIG_H}
应该是指参数列表中的一个参数format
......但是不,我真的想把它打印到输出中......就像它一样.
我该如何处理这种情况?
如果不使用格式变量,则需要转义括号"}".
def_desc = "blaa" s = " FILE(WRITE ${{CONFIG_H}} \"/* {0} */\\n\")\n".format(def_desc)
你需要使用双括号:
s = " FILE(WRITE ${{CONFIG_H}} \"/* {0} */\\n\")\n".format(def_desc)
但是,对于像jinja或mako这样的东西使用模板库要容易得多.