我在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年
我一定是丢了什么东西。
使用
len
而不是sys.getsizeof()
:sys.getsizeof()
返回解释器用来保存该对象的字节。除此之外,如果在窗口中运行程序,则应使用二进制模式。
注意
使用file.tell,不需要计算当前位置。
相关问题 更多 >
编程相关推荐