Python 文件读取时,在for循环中的tell方法返回错误

发布于 2022-09-07 09:07:46 字数 343 浏览 13 评论 0

代码每次迭代一行,期望tell方法返回当前指针的位置。但是实际返回的是整片文档的最后的位置;
请帮我看看问题在哪里?

My Daily.txt

Good morning:
    As we known, Chengdu IS one of largest cities in the world!
    Set up
    get up
    take off
OK

代码如下

with open(r'My Daily', 'r+') as f:
    for line in f:
        print f.tell()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你在我安 2022-09-14 09:07:46

当对 文件对象f 使用 for 遍历的时候,会将 f 的内容读取出来,生成可迭代对象进行遍历。

所以你输出的位置总是在最后

不忘初心 2022-09-14 09:07:46

for line in f:
是在调用 f.next().
f.next() 方法被调用的时候,f.tell() 方法不可以被调用

如果需要返回当前指针位置,可以这样
pos = 0
with open(r'My Daily', 'r+') as f:

for line in f:
    pos += len(lien)
    #print f.tell()
    print(post)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文