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