无法打印文件

Fáb*_*uci 2 python printing windows-7 python-3.x

这是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())
Run Code Online (Sandbox Code Playgroud)

它写的文件很好,但由于某种原因它不会打印它.

test = open('test.txt', 'r+')

print(test.read())
Run Code Online (Sandbox Code Playgroud)

这按预期打印,所以我不知道问题出在哪里.

更新:

使用seek(0)解决了它.你可以链接一下它的解释吗?我在语言的文档中找不到它.

U2E*_*EF1 5

文件对象指向文件中的特定位置.写完所有内容后,您的文件对象指向文件的末尾.正如预期的那样,从那一点开始读书就什

test.seek(0)
print(test.read())
Run Code Online (Sandbox Code Playgroud)

将从头开始阅读.

编辑:图表.你打开文件,它什么都没包含.

''
 ^
Run Code Online (Sandbox Code Playgroud)

你把一些东西写到文件中.

'hello, world\n'
               ^
Run Code Online (Sandbox Code Playgroud)

每次写入文件时,都会在指向的位置添加更多内容.

'hello, world\nokay, goodbye!'
                             ^
Run Code Online (Sandbox Code Playgroud)

现在你一直读到文件到最后!

''
Run Code Online (Sandbox Code Playgroud)

它没有打印,因为你从头开始阅读.seek告诉我们指向文件中的其他位置.既然我们想要阅读所有内容,我们应该从位置开始0.

> seek(0)
'hello, world\nokay, goodbye!'
 ^
Run Code Online (Sandbox Code Playgroud)

从头开始阅读所有内容.

hello, world
okay, goodbye!
Run Code Online (Sandbox Code Playgroud)