我想爲我的一個程序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