我正在编写一个程序,其中的操作需要几秒钟(加载大文件)。幸运的是,它总是需要相同的时间。所以,为了用户的利益,我想做一个进度条。然而,tqdm似乎是为循环设计的。可以说这sleep(10)是一个需要时间的过程。我该如何解决这个问题?
我想为一个不是循环的长过程制作一个进度条。
from time import time, sleep
from tqdm import tqdm
for i in tqdm([1]):
sleep(10)
Run Code Online (Sandbox Code Playgroud)
这段代码的问题是进度条将保持为零,然后在进程结束时跳到 100%。我想要一个在 10 秒内持续变化的进度条。
小智 9
手动设置 tqdm 的进度值:
#Manually set p_bar
p_bar = tqdm(range(10))
p_bar.update(5)
p_bar.refresh()
time.sleep(1)
#another way to do it
p_bar.n = 7
p_bar.refresh()
Run Code Online (Sandbox Code Playgroud)
您可以定义块大小。持续 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13840 次 |
| 最近记录: |