2024-04-24 06:53:35 发布
网友
使用os.path.getsize:
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()。
seek()
tell()
编辑
这与os.stat()之间的另一个区别是,即使您没有读取文件的权限,也可以stat()文件。显然,除非你有阅读许可,否则seek/tell方法是行不通的。
os.stat()
stat()
编辑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成员:
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
:输出以字节为单位。
其他答案适用于真实的文件,但如果需要适用于“类文件对象”的内容,请尝试以下操作:
在我有限的测试中,它适用于真实文件和StringIO。当然,“类文件对象”API并不是一个严格的接口,但是API documentation建议类文件对象应该支持
seek()
和tell()
。编辑
这与
os.stat()
之间的另一个区别是,即使您没有读取文件的权限,也可以stat()
文件。显然,除非你有阅读许可,否则seek/tell方法是行不通的。编辑2
在乔纳森的建议下,这里有一个偏执的版本。(上面的版本将文件指针放在文件的末尾,因此如果您尝试从文件中读取,您将得到零字节!)
使用^{} ,并使用结果对象的
st_size
成员:输出以字节为单位。
相关问题 更多 >
编程相关推荐