Python行读取大小(字节)

2024-05-18 05:52:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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年

我一定是丢了什么东西。


Tags: 文件readinputsize字节byteslinuxsys
1条回答
网友
1楼 · 发布于 2024-05-18 05:52:19

使用len而不是sys.getsizeof()

sys.getsizeof()返回解释器用来保存该对象的字节。

>>> len('asdf')
4
>>> import sys
>>> sys.getsizeof('asdf')
37

除此之外,如果在窗口中运行程序,则应使用二进制模式。

open(myfile, 'rb')

注意

使用file.tell,不需要计算当前位置。

相关问题 更多 >