我正在处理大量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
这应该给你一个光滑的进度条,你几乎没有任何努力.