私はLinuxで働いています。解析されたファイルの割合を表示したいと思います。そのため、少し読んだ後、解析しているファイルの合計サイズ (バイト) を取得し、読み取り後に各行のサイズ (バイト) を計算するのが最も正確な方法であると判断しました。
これは私のダミーの簡略化されたコードです。
if __name__ == '__main__':
read_bytes = 0
total_file_size = os.path.getsize(myfile)
with open(myfile, 'r') as input_file:
for line in input_file:
read_bytes += sys.getsizeof(line)
print "do my stuff"
print total_file_size
print read_bytes
出力は次のとおりです。
193794194
203979278
明らかに、合計サイズが増加している行に何かカウントがあります。私は試してみました:
read_bytes += sys.getsizeof(line) - sys.getsizeof('\n')
出力は次のとおりです。
193794194
193309190
私は何かが欠けているに違いない。