繁体   English   中英

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

[英]Why is my code printing incorrectly to the text file?

我有以下代码:

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

原始文本文件可以在这里找到。

当您遍历像这样的可迭代对象时:

for line in content:
    line = ...

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

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

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

1:请参阅@MarkRansom注释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM