如何在python中检查文件大小?

2024-04-24 06:53:35 发布

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


Tags: python
3条回答

使用os.path.getsize

>>> import os
>>> b = os.path.getsize("/path/isa_005.mp3")
>>> b
2071611L

输出以字节为单位。

其他答案适用于真实的文件,但如果需要适用于“类文件对象”的内容,请尝试以下操作:

# f is a file-like object. 
f.seek(0, os.SEEK_END)
size = f.tell()

在我有限的测试中,它适用于真实文件和StringIO。当然,“类文件对象”API并不是一个严格的接口,但是API documentation建议类文件对象应该支持seek()tell()

编辑

这与os.stat()之间的另一个区别是,即使您没有读取文件的权限,也可以stat()文件。显然,除非你有阅读许可,否则seek/tell方法是行不通的。

编辑2

在乔纳森的建议下,这里有一个偏执的版本。(上面的版本将文件指针放在文件的末尾,因此如果您尝试从文件中读取,您将得到零字节!)

# f is a file-like object. 
old_file_position = f.tell()
f.seek(0, os.SEEK_END)
size = f.tell()
f.seek(old_file_position, os.SEEK_SET)

使用^{},并使用结果对象的st_size成员:

>>> import os
>>> statinfo = os.stat('somefile.txt')
>>> statinfo
(33188, 422511L, 769L, 1, 1032, 100, 926L, 1105022698,1105022732, 1105022732)
>>> statinfo.st_size
926L

输出以字节为单位。

相关问题 更多 >