【发布时间】:2018-04-16 05:05:28
【问题描述】:
TLDR;写入文件会导致稍后读取愚蠢的文件。
我正在尝试在文件中创建一个数字网格,然后稍后将它们回调。
这是我的代码:
data = []
if os.path.isfile("./" + fname):
with open(fname, "r") as f:
for line in f:
data.append(line.split(","))
else:
f = open(fname,"w+")
for i in range(3):
f.write("0,0,0")
data.append(["0","0","0"])
f.close()
print(data)
简单地说,上面的代码检查是否存在与fname同名的文件。如果不是,它会创建一个新文件,否则,它将值的“网格”存储为data。
正如预期的那样,当我第一次运行它时,它会打印[["0","0","0"],["0","0","0"],["0","0","0"]],并创建一个新文件XXXXXXXX.txt。问题是当你再次运行它时,它会打印[['0', '0', '00', '0', '00', '0', '0']],这是错误的。检查文件后,存储的信息是0,0,00,0,00,0,0,不是:
0,0,0
0,0,0
0,0,0
如果我使用f.write("0,0,0\n"),文件看起来很好,但程序打印[['0', '0', '0\n'], ['0', '0', '0\n'], ['0', '0', '0']],仍然是错误的。
我很困惑,请帮忙。
【问题讨论】:
标签: python python-3.x file-io