2024-05-23 15:34:52 发布
网友
我正在迭代一个大型csv文件,我想打印一些进度指示器。据我所知,计算行数需要解析所有文件中的换行符。所以我不能轻易地用行号来估计进度。
还有什么我可以做的来估计阅读的进度吗?也许我可以按尺码去?
您可以通过以下方式对大文件使用TQM:
import os import tqdm with tqdm.tqdm(os.path.getsize(filename)) as pbar: with open(filename, "rb") as f: for l in f: pbar.update(len(l)) ...
如果你读了一个utf-8文件,那么len(l)不会给出确切的字节数,但是应该足够好。
utf-8
len(l)
您可以使用os.path.getsize(filename)获取目标文件的大小。然后,当您从文件中读取数据时,可以使用一个简单的公式计算进度百分比 currentBytesRead/filesize*100%。这个计算可以在每N行的末尾进行。
os.path.getsize(filename)
currentBytesRead/filesize*100%
对于实际进度条,请查看Text Progress Bar in the Console
请检查这个名为tqdmhttps://github.com/noamraph/tqdm的小(有用)库 您只需包装一个迭代器,循环执行时就会显示很酷的进度表。
图片说明了一切。
您可以通过以下方式对大文件使用TQM:
如果你读了一个
utf-8
文件,那么len(l)
不会给出确切的字节数,但是应该足够好。您可以使用
os.path.getsize(filename)
获取目标文件的大小。然后,当您从文件中读取数据时,可以使用一个简单的公式计算进度百分比currentBytesRead/filesize*100%
。这个计算可以在每N行的末尾进行。对于实际进度条,请查看Text Progress Bar in the Console
请检查这个名为tqdmhttps://github.com/noamraph/tqdm的小(有用)库 您只需包装一个迭代器,循环执行时就会显示很酷的进度表。
图片说明了一切。
相关问题 更多 >
编程相关推荐