Python - 格式化ascii表的数字

时间:2016-09-20 12:29:37

标签: python python-3.x formatting numbers text-files

我想知道为什么我的代码不起作用。我想在小数点后用2个数字舍入两列数据。我现在正在关注以下代码:

from __future__ import print_function

with open('input.dat', 'r') as f, open('output.txt', 'w') as outfile:
    for line in f:
        try:
            line = line.strip()
            columns = line.split()
            vx = float(columns[0])
            vy = float(columns[1])
            print("{:.2f\t}".format(vx),"{:.2f}".format(vy), file=outfile)
        except ValueError:
            print(line, file=outfile)

输入数据如下

XY
HH
M&M
TS
1.83746 2.12131
1.12121 1.89942
1.32435 1.99443
1.65392 2.00001
1.48732 2.21773
...
...

输出应如下所示:

XY
HH
M&M
TS
1.84    2.12
1.12    1.90
1.32    1.99
1.65    2.00
1.49    2.22
...
...

1 个答案:

答案 0 :(得分:3)

我认为这一行是错误的

print("{:.2f\t}".format(vx),"{:.2f}".format(vy), file=outfile)

标签应该在{}之外,我会像这样重写它

print("{:.2f}\t{:.2f}".format(vx, vy), file=outfile)