这里是python(3.4)代码:
test = open('test.txt', 'r+')
test.truncate();
i = 0
stop = 99
while i <= stop:
test.write("{:0>{}}|".format(i, len(str(stop))))
i += 1
print(test.read())
它写的文件很好,但由于某种原因它不会打印出来。
test = open('test.txt', 'r+')
print(test.read())
这会按预期打印出来,所以我不知道问题出在哪里。
更新
使用seek(0)解决了它。你能链接一下它的解释吗?我无法在语言文档中找到它。
答案 0 :(得分:5)
文件对象指向文件中的特定位置。写完所有内容后,您的文件对象指向文件的末尾。正如预期的那样,从那一点开始读书就没有了。
test.seek(0)
print(test.read())
将从头开始阅读。
编辑:图表。你打开文件,它什么都没有。
''
^
你在文件中写了一些东西。
'hello, world\n'
^
每当您写入文件时,会在指向的位置添加更多内容。
'hello, world\nokay, goodbye!'
^
现在你一直读到文件到最后!
''
它没有打印,因为你从头开始阅读。 seek
告诉我们指向文件中的其他位置。由于我们想要阅读所有内容,我们应该从位置0
开始。
> seek(0)
'hello, world\nokay, goodbye!'
^
从头开始阅读所有内容。
hello, world
okay, goodbye!
答案 1 :(得分:1)
尝试在读取
之前使用test.seek(0)
“倒回”文件指针