Python 为什么我的代码无法正确打印到文本文件?

Python 为什么我的代码无法正确打印到文本文件?,python,python-2.7,python-3.x,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) e

我有以下代码:

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
打印该行时,该行是正确的,但当它打印到文本文件时,它将作为原始文件打印


可以找到原始文本文件。

当您在iterable中循环时,如:

for line in content:
    line = ...
是元素的副本1。因此,如果您修改它,更改将不会影响
内容

你能做什么?您可以迭代索引,以便直接访问当前元素:

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


1:请参阅@MarkRansom comment。

如何使更改影响
内容
?严格来说,除非您在其上使用
=
,否则它不是副本。它以对同一字符串的两个引用开始,但赋值会更改
引用,而不会更改
内容
引用。你的修复是完美的。