我使用的很多模块将整个文件导入到内存中,或者在处理文件的内容时将其涓涓细流.我想知道是否有办法跟踪这种加载进度?可能是一个需要回调的包装类?
我会通过确定文件的大小来做到这一点,然后简单地将总数除以读取的字节数.像这样:
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
编辑:我知道这不是最好的代码,但我只是想展示这个概念.