tell() 返回什么?如何用它计算已读文件的百分比?
我在Windows上使用Python 2.7,而且我对Python还很陌生,所以如果这个问题很简单,请多包涵。
我看到的所有资料都说,tell()这个函数会返回“位置”,我理解这个位置就是我们在读取文件时光标当前所在的位置。听起来很有用,但我就是搞不清楚怎么找到文件的总“位置”,这样才能计算出百分比。
1 个回答
4
你可以先把文件指针移动到文件的末尾,然后调用 .tell()
来获取当前位置:
import os
fileobj.seek(0, os.SEEK_END)
size = fileobj.tell()
fileobj.seek(0, os.SEEK_SET)
上面的例子使用了 os.SEEK_*
常量 来设置如何理解移动的偏移量(也就是 .seek()
的第一个参数)。
另外,你也可以使用 os.fstat()
函数 来获取你打开的文件的大小:
import os
size = os.fstat(fileobj.fileno()).st_size
后者的信息通常可以被操作系统更容易地缓存,所以通常会更快。