【发布时间】:2012-05-28 22:50:02
【问题描述】:
我正在考虑将一个相当笨拙的 bash 脚本移植到 python,但我被困在如何处理以下方面:脚本的重点是根据动态获取的数据生成一个 png 图像。 bash 脚本抓取数据,并构建了一个很长的 convert 实用程序调用,其中有很多选项。看起来 python 的模板字符串将是一个很好的解决方案(我更愿意留在标准库中,因为我将部署到共享主机),但我发现你不能像在 bash 中那样评估表达式:
>>> from string import Template
>>> s = Template('The width times one is ${width}')
>>> s.substitute(width=45)
'The width times one is 45'
>>> t = Template('The width times two is ${width*2}')
>>> t.substitute(width=45)
# Raises ValueError
由于我的 bash 脚本在很大程度上依赖于这种算术(否则要跟踪的变量数量会成倍增加),我想知道是否有办法在 python 中模拟这种行为。看到this question,问的差不多,有评论,写着:
这将是非常不符合 Python 的,因为它违反直觉——字符串只是 字符串,它们不应该运行代码!
如果是这种情况,解决这个问题的更惯用方法是什么?
对上面链接的问题的建议答案是使用带有% 语法或format() 函数的字符串格式,但我认为这不适用于我的字符串中的变量数量(大约50)。
【问题讨论】: