python - 是否可以将 tqdm 用于不是循环的进程?
问题描述
我正在编写一个操作需要几秒钟的程序(加载一个大文件)。幸运的是,它总是需要相同的时间。所以,为了用户着想,我想做一个进度条。但是,tqdm
似乎是为循环设计的。假设这sleep(10)
是一个需要时间的过程。我该如何解决?
我想为一个不是循环的长过程制作一个进度条。
from time import time, sleep
from tqdm import tqdm
for i in tqdm([1]):
sleep(10)
这段代码的问题是进度条将保持为零,然后在进程结束时跳转到 100%。我想要一个在 10 秒内不断变化的进度条。
解决方案
您可以定义块大小。持续 10 秒的条假定您已经知道加载文件所需的时间...
尝试这个
from tqdm import tqdm_notebook as tqdm
chunk_size = 1000
total_chunks=nrows/chunk_size
chunks = pd.read_sql_query(query, connection, index_col='index_name',chunksize= chunk_size)
raw_train_data=pd.DataFrame()
with tqdm(total=total_chunks) as pbar:
for chunk in chunks:
raw_train_data = pd.concat([raw_train_data, chunk])
pbar.update(1)
推荐阅读
- python - 从 wunderground 抓取历史天气数据
- c# - 隐式流向 url 添加哈希前缀
- flutter - Where should setState be called/should it?
- mysql - MySql工作台中没有SYS模式
- c - 定义新类型时需要你有一个别名来编译它?
- go - 无法通过 gorm 读取 postgres 数据库中的写入信息
- c++ - c ++计算两个数组的总和,如果结果偶数则输出布尔值'0',如果奇数则输出'1'
- python - PysimpleGUI 无法读取 sg.WIN_CLOSED 事件中的 inputFields
- postgresql - 如何为每个不同的外键交叉连接一个表?
- cordova - 未找到插件“设备”,或者不是 CDVP 插件。检查 config.xml 中的插件映射