You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用alive_progress为pandas读取CSV及for循环添加进度条的实现方法

CSV读取进度条不结束的原因及修复方案

你当前代码进度条一直处于加载状态的核心原因是:alive_bar(100)定义了总进度为100个单位,但你仅调用了1次bar(),仅完成了1个单位的进度,剩余99个单位未被确认,因此进度条会一直停留在待完成状态。同时pandas默认的read_csv是一次性加载全量文件,本身没有进度回调逻辑,直接套在上下文管理器外无法获取实时读取进度。

根据你的需求可以选择两种修复方案:

方案1:仅需标记读取完成,无需实时进度

如果不需要显示读取过程中的实时进度,只需要读取完成后进度条同步结束,可以直接将alive_bar的总进度值设为1:

import pandas as pd
from alive_progress import alive_bar

with alive_bar(1, theme='ascii') as bar:
    file = pd.read_csv('file.csv', 
                        sep = ';', 
                        skiprows = 56,
                        parse_dates = [['Date','Time']])
    bar()

方案2:显示CSV读取的实时进度

如果需要同步显示读取进度,需要用read_csv的chunksize参数分块加载文件,每读取一块更新一次进度:

import pandas as pd
from alive_progress import alive_bar

# 先统计有效数据总行数(扣除要跳过的前56行)
total_rows = sum(1 for _ in open('file.csv', 'r')) - 56
# 单块读取行数,可根据文件大小自行调整
chunk_size = 1000
df_chunks = []

with alive_bar(total_rows, theme='ascii') as bar:
    # 分块读取CSV
    for chunk in pd.read_csv('file.csv', 
                            sep = ';', 
                            skiprows = 56,
                            parse_dates = [['Date','Time']],
                            chunksize=chunk_size):
        df_chunks.append(chunk)
        # 按当前块的行数更新进度
        bar(len(chunk))
# 合并所有块得到完整DataFrame
file = pd.concat(df_chunks, ignore_index=True)
for循环添加进度条的方法

alive_progress原生支持for循环场景,两种常用实现方式:

方式1:自动适配迭代对象

直接把要遍历的可迭代对象传入alive_bar,不需要手动调用更新方法,进度会自动更新:

from alive_progress import alive_bar
import time

# 遍历的同时自动更新进度
for item in alive_bar(range(100), theme='ascii'):
    # 此处为循环业务逻辑
    time.sleep(0.05)

方式2:手动控制进度

适合循环次数不固定、需要自定义进度增量的场景:

from alive_progress import alive_bar
import time

total_task = 50
with alive_bar(total_task, theme='ascii') as bar:
    for i in range(total_task):
        # 此处为循环业务逻辑
        time.sleep(0.1)
        # 手动更新1个单位的进度
        bar()

内容的提问来源于stack exchange,提问作者Sultry T.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:57:04