我想为我的一个程序IN PYTHON实现一个命令行进度条,它可以逐行读取文件中的文本。保持字节数的读取
- (行数/总线)或
- (完成/字节总字节数)
I:
我可以通过以下两种方式中的一种实现的进展规模不关心哪个,但"number of lines"
似乎要求我循环遍历整个文档(可能非常大),只是为了得到"total lines"
的值。
这看起来效率极低。我在盒子外面思考,也许想过如果我把文件的大小(更容易得到?)和跟踪读取的字节数跟踪,这可能是一个很好的进度栏度量标准。
我可以使用os.path.getsize(file)
或os.stat(file).st_size
来检索文件的大小,但我还没有找到一种方法来跟踪由readline()
读取的字节数。我正在使用的文件应该用ASCII编码,或者甚至是Unicode编码,所以......我应该确定使用的编码,然后记录读取或使用os.getsizeof()
或某些len()
函数读取的每行字符数?
我相信这里会有问题。有什么建议么? (PS - 我不认为手动输入要一次读取的字节数是可行的,因为我需要单独使用每一行;否则,我需要在之后将它拆分为“\ n “'S)
而不是在'data'上实际使用'len'。你也可以使用'file.tell()'来获取当前位置并摆脱所需的大部分跟踪。 – Wessie