在Python中跟踪文件加载进度
答
我会通过确定文件的大小,然后简单地将总数除以读取的字节数来完成此操作。就像这样:
import os
def show_progress(file_name, chunk_size=1024):
fh = open(file_name, "r")
total_size = os.path.getsize(file_name)
total_read = 0
while True:
chunk = fh.read(chunk_size)
if not chunk:
fh.close()
break
total_read += len(chunk)
print "Progress: %s percent" % (total_read/total_size)
yield chunk
for chunk in show_progress("my_file.txt"):
# Process the chunk
pass
编辑:我知道这是不是最好的代码,但我只是想表明的概念。
答
如果您确实是指“导入”(而不是“读取”),则可以覆盖导入模块定义。您可以添加计时功能。
请参阅imp模块。
如果你的意思是“读”,那么你可以用你自己的文件类包装来简单地包装Python文件。文件不公开太多的方法。您可以覆盖有趣的那个来获取计时数据。
>>> class MyFile(file):
... def read(self,*args,**kw):
... # start timing
... result= super(MyFile,self).read(*args,**kw)
... # finish timing
... return result