如何检查在Python中的文件大小?
我正在Windows中编写一个Python脚本。 我想根据文件大小做一些事情。 例如,如果大小大于0,我会发送电子邮件给某人,否则继续其他事情。
如何检查文件大小?
使用os.stat
,并使用生成对象的st_size
成员:
>>> import os
>>> statinfo = os.stat('somefile.txt')
>>> statinfo
(33188, 422511L, 769L, 1, 1032, 100, 926L, 1105022698,1105022732, 1105022732)
>>> statinfo.st_size
926L
输出以字节为单位。
使用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,在我的有限测试中。 (Python 2.7.3。)当然,“类文件对象”API并不是真正的严格界面,但API文档建议文件类对象应该支持seek()
和tell()
。
编辑
这个和os.stat()
之间的另一个区别是,即使你没有读权限,你也可以stat()
一个文件。 除非您有阅读许可,否则显然这种寻求/告知方法将不起作用。
编辑2
在Jonathon的建议下,这是一个偏执狂的版本。 (上面的版本将文件指针留在文件的末尾,所以如果你想从文件读取数据,你会得到零字节!)
# 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)
链接地址: http://www.djcxy.com/p/42301.html