【发布时间】:2018-06-13 16:17:08
【问题描述】:
文件系统很少允许文件长度为任意字节数,而是更喜欢填充它们以适应一定数量的块。 Python 的 os.path.getsize() 被记录为以字节为单位返回大小,但我不确定它是否被操作系统(在我的情况下是 linux)或文件系统四舍五入到块大小。对于我的应用程序,我必须知道能够从大文件 (~1GB) 中读取的确切字节数。对此有什么保证?
【问题讨论】:
-
这取决于您的文件系统。某些文件系统(如 procfs 和 sysfs)根本不会在统计数据中返回非零大小。如果你想要完全确定,打开文件,
seek()到最后,然后使用tell()给你当前的偏移量。也就是说,对于用于常规(非生成、非虚拟、非套接字、非块设备)文件的常用文件系统上的常规文件,os.path.getsize()将返回您要查找的内容。