【发布时间】:2011-08-18 22:25:25
【问题描述】:
我正在为程序生成专门格式化的输入文件,并使用小型 python tkinter GUI 前端来执行此操作。旧代码使用 fortran 格式语句。除非已经有一组用于 python 的直接转换函数(我还没有找到),否则我认为 python 的格式可以完成这项工作。一般来说可以,但我找不到重复某个值的方法:
例如,在 fortran 中:
FORMAT (2A1, I3, **12I5**, F8.3, A7). The "12I5" statement translates to 12 integer values of width 5.
我知道我可以在格式调用中以文本形式包含 12 个项目(例如:...{0:5d}, {1:5d}, {2:5d}....),但我想知道是否有一种方法可以像上面的 fortran 示例那样简化形式。
有什么我遗漏的,或者这是不可能的,我必须明确地写出格式中的每一项?
-干杯, 克里斯。
编辑 这是我目前正在做的一个更清楚的例子:
>>> ---tester = ["M", "T", 1111, 2222, 234.23456, "testing"]
>>> ---fmt = "{0:1}{1:1}, {2:3d}, {3:5d}, {4:8.3F}, {5:>7}"
>>> ---print(fmt.format(*tester))
MT, 13, 1234, 234.235, testing
我希望能够
>>> ---tester = ["M", "T", 1111, **2222, 3333, 4444**, 234.23456, "testing"]
>>> ---fmt = "{0:1}{1:1}, {2:3d}, **3*{3:5d}**, {4:8.3F}, {5:>7}"
>>> ---print(fmt.format(*tester))
【问题讨论】: