我想为我的一个程序 IN PYTHON 实现一个命令行进度条,它逐行从文件中读取文本。
我可以通过以下两种方式之一实施进度量表:
- (行数/总行数)或
- (完成的字节数/总字节数)
我不在乎哪个,但"number of lines"
似乎需要我遍历整个文档(可能非常大)才能获得"total lines"
.
这似乎效率极低。我在思考,如果我获取文件的大小(更容易获得?)并跟踪已读取的字节数,它可能会成为一个很好的进度条指标。
我可以使用os.path.getsize(file)
oros.stat(file).st_size
来检索文件的大小,但我还没有找到一种方法来跟踪readline()
. 我正在使用的文件应该用 ASCII 编码,甚至可能是 Unicode,所以......我应该只确定使用的编码,然后记录读取或使用的字符数或读取的每一行的os.getsizeof()
某些函数吗?len()
我相信这里会有问题。有什么建议么?
(PS - 我不认为手动输入一次读取的字节数会起作用,因为我需要单独处理每一行;否则我需要在之后用“\n”将其拆分。 )