linux 和 python3 上的文件大小不同读数

linux 和 python3 上的文件大小不同读数

我的终端文件夹中有一些文件。如图所示,文件大小为 33 kB,当我将鼠标放在上面时,它显示为 33.88 kB。

在此输入图像描述

但是,当使用 os.stat 和 os.path 检查相同文件的大小时,我得到不同的数字(以字节为单位)。我哪里做错了?谢谢

在此输入图像描述

答案1

长话短说,Python 的os.stat()输出大小以字节为单位。但是,您的文件管理器显示的大小为千字节,它是 2 的幂,而不是千字节那样的 10 次幂(因为计算机科学大部分使用 2 的幂,而普通消费者更熟悉 10 的幂)。

在此输入图像描述

更具体地说,Pythonos.stat()根据文件类型显示大小;到报价文件:

“文件大小”的解释根据文件类型而变化。对于普通文件,这是文件的大小(以字节为单位)。对于大多数 Unix 版本(特别包括 Linux)下的 FIFO 和套接字,“大小”是调用 os.stat()、os.fstat() 或 os 时等待读取的字节数.lstat();这有时很有用,特别是在非阻塞打开后轮询这些特殊文件之一时。其他字符和块设备的大小字段的含义变化较大,具体取决于底层系统调用的实现。

相关内容