如何查看read_csv的进度条

7 python csv pandas

我正在尝试读取 100GB 大小的 csv 文件
我想在他们读取文件时看到专业栏

file = pd.read_csv("../code/csv/file.csv") 
Run Code Online (Sandbox Code Playgroud)

像 =====> 30%
有没有办法在读取 read_csv 时看到进度条?或其他文件

use*_*182 4

这个想法是从大文件中读取几行来估计行大小,然后迭代文件的块。

import os
import sys
from tqdm import tqdm


INPUT_FILENAME = f"{BASE_PATH}betas_R_SWAN_offset_100.csv.gz"
LINES_TO_READ_FOR_ESTIMATION = 20
CHUNK_SIZE_PER_ITERATION = 10**5


temp = pd.read_csv(INPUT_FILENAME,
                   nrows=LINES_TO_READ_FOR_ESTIMATION)
N = len(temp.to_csv(index=False))
df = [temp[:0]]
t = int(os.path.getsize(INPUT_FILENAME)/N*LINES_TO_READ_FOR_ESTIMATION/CHUNK_SIZE_PER_ITERATION) + 1


with tqdm(total = t, file = sys.stdout) as pbar:
    for i,chunk in enumerate(pd.read_csv(INPUT_FILENAME, chunksize=CHUNK_SIZE_PER_ITERATION, low_memory=False)):
        df.append(chunk)
        pbar.set_description('Importing: %d' % (1 + i))
        pbar.update(1)

data = temp[:0].append(df)
del df            
Run Code Online (Sandbox Code Playgroud)

  • 一些代码注释或对这些变量的解释将有助于回答这个问题。 (6认同)