我正在尝试读取 100GB 大小的 csv 文件
我想在他们读取文件时看到专业栏
file = pd.read_csv("../code/csv/file.csv")
Run Code Online (Sandbox Code Playgroud)
像 =====> 30%
有没有办法在读取 read_csv 时看到进度条?或其他文件
这个想法是从大文件中读取几行来估计行大小,然后迭代文件的块。
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)