无法打印文件
这是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)解决了这个问题。你能给我链接一个关于它的解释吗?我在语言的文档里找不到。
2 个回答
1
在读取文件之前,试着用 test.seek(0)
来“回到”文件的开头。
6
文件对象指向文件中的一个特定位置。在你写完所有内容后,文件对象就指向了文件的末尾。从这个位置读取内容自然什么也得不到。
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!