[英]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.