【发布时间】:2019-05-02 13:54:54
【问题描述】:
我的 Python 脚本中有几行代码需要 20 分钟到几个小时不等,具体取决于所读取文件的大小。我想知道是否可以实现一个进度条来跟踪完成进度。
从我阅读的文档中,我了解到 tqdm 和 progressbar2 经常用于存在 for 循环的情况。
这是我的代码的样子:
gjson2 = rasterstats.zonal_stats(polygons, raster, prefix='xyz_', geojson_out=True,all_touched=False,categorical=True)
代码用于将多边形文件 (.shp) 与光栅文件 (.adf) 相交以提取光栅值。有没有办法可以重写代码以使其可迭代?或者操纵 tqdm 或 progressbar2 在这种情况下工作?
谢谢!
【问题讨论】:
-
要计算进度,您必须提前知道终点,即以任何单位处理的“总”,以及当前点。没有这个是不可能的。即使文件大小是已知的(不是流)并且它与所需的处理时间(不是给定的)成正比,您也可以通过实验估计总时间,并设置一个计时器(
import threading[? ]) 每次发射这么多子单位的总时间。但是,这更像是一种 hack,因为 CPU 速度因不同机器而异,因此一般情况下它很可能无法正常工作。
标签: python progress-bar