我使用的许多模块都会将整个文件导入内存或在处理文件时将文件的内容滴入其中。我想知道是否有任何方法可以跟踪这种加载进度?可能是一个需要回调的包装类?
我会通过确定文件的大小,然后简单地将总数除以读取的字节数来实现这一点。像这样:
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
Edit:我知道这不是最好的代码,但我只是想展示这个概念。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)