加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 11:53:44 所属栏目:Python 来源:网络整理
导读:我正在处理大量CSV文件,每个文件都包含大量行.我的目标是逐行获取数据并使用 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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读