python – 获取CSV的长度以显示进度

我正在处理大量CSV文件,每个文件都包含大量行.我的目标是逐行获取数据并使用
Python将其写入数据库.但是,由于存在大量数据,我希望能够跟踪已写入的数据量.为此,我计算了排队的文件数量,并在每次文件完成时继续添加一个文件.

我想为CSV文件做类似的事情并显示我在哪一行,以及总共有多少行(例如:当前在X的第1行).我可以通过从一开始然后执行类似的操作轻松地获得当前行:currentRow = 1,但是我不确定如何通过读取行​​的耗时过程来获得总数.

另外,因为我的CSV文件都存储在zip存档中,我目前正在使用ZipFile模块读取它们,如下所示:

#The Zip archive and the csv files share the same name
with zipArchive.open(fileName[:-4] + '.csv', 'r') as csvFile:
    lines = (line.decode('ascii') for line in csvFile)
    currentRow = 1

    for row in csv.reader(lines):
        print(row)
        currentRow += 1

有关如何快速获取CSV文件总行数的任何想法?

最佳答案 如果您只想显示一些进度,可以尝试使用
tqdm.

from tqdm import tqdm

with zipArchive.open(fileName[:-4] + '.csv', 'r') as csvFile:
    lines = [line.decode('ascii') for line in csvFile]
    currentRow = 1

    for row in tqdm(csv.reader(lines), total=len(lines)):
        print(row)
        currentRow += 1

这应该给你一个光滑的进度条,你几乎没有任何努力.

点赞