为什么我的代码打印错误到文本文件?

时间:2014-03-31 22:42:37

标签: python python-2.7 python-3.x

我有这段代码:

with open("pool2.txt", "r") as f:
    content = f.readlines()
for line in content:
    line = line.strip().split(' ')
    try:
        line[0] = float(line[0])+24
        line[0] = "%.5f" % line[0]
        line = '    ' + ' '.join(line)
    except:
        pass
with open("pool3.txt", "w") as f:
    f.writelines(content)

应该采用如下所示的行:

-0.597976 -6.85293 8.10038

添加到第一个数字的24行。像这样:

23.402024 -6.85293 8.10038

当我在代码中使用print来打印该行时,该行是正确的,但是当它打印到文本文件时,它会打印为原始文件。

可以找到原始文本文件here

1 个答案:

答案 0 :(得分:1)

循环遍历迭代时:

for line in content:
    line = ...

line是元素的副本 1 。因此,如果您对其进行修改,则更改不会影响content

你能做什么?您可以遍历索引,因此可以直接访问当前元素:

for i in range(len(content)):
    content[i] = ...

1:请参阅@MarkRansom评论。