【问题标题】:Can't print file无法打印文件
【发布时间】:2014-07-05 12:45:55
【问题描述】:

这是 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) 解决了它。你能链接一个关于它的解释吗?我在该语言的文档中找不到它。

【问题讨论】:

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


【解决方案1】:

在读取之前尝试使用test.seek(0)“倒带”文件指针

【讨论】:

    【解决方案2】:

    Files 对象指向文件中的特定位置。写完所有这些东西后,您的文件对象指向文件的末尾。正如预期的那样,从那一点开始读取什么也得不到。

    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!
    

    【讨论】:

      猜你喜欢
      • 2016-01-22
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-23
      • 1970-01-01
      • 2016-11-22
      相关资源
      最近更新 更多