无法打印文件

时间:2014-05-16 23:17:11

标签: python python-3.x printing windows-7

这里是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 个答案:

答案 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)“倒回”文件指针