如何在Python中获取文件的大小?
当前回答
使用os.path.getsize:
>>> import os
>>> os.path.getsize("/path/to/file.mp3")
2071611
输出以字节为单位。
其他回答
其他答案适用于实际文件,但如果你需要一些适用于“类文件对象”的东西,试试这个:
# f is a file-like object.
f.seek(0, os.SEEK_END)
size = f.tell()
在我有限的测试中,它适用于真实的文件和StringIO。(Python 2.7.3。)当然,“类文件对象”API并不是一个严格的接口,但是API文档建议类文件对象应该支持seek()和tell()。
Edit
这和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)
使用pathlib(在Python 3.4或PyPI上可用的backport中添加):
from pathlib import Path
file = Path() / 'doc.txt' # or Path('./doc.txt')
size = file.stat().st_size
这实际上只是一个围绕os的界面。但是使用pathlib提供了一种访问其他文件相关操作的简单方法。
我们有两个选择,都包括导入os模块
1)
import os
os.stat("/path/to/file").st_size
作为os.stat()函数返回一个包含许多头文件的对象,包括文件创建时间和最后修改时间等。其中st_size给出了文件的确切大小。 文件路径可以是绝对路径也可以是相对路径。
2) 在这里,我们必须提供准确的文件路径,文件路径可以是相对路径也可以是绝对路径。
import os
os.path.getsize("path of file")
严格地坚持这个问题,Python代码(+伪代码)将是:
import os
file_path = r"<path to your file>"
if os.stat(file_path).st_size > 0:
<send an email to somebody>
else:
<continue to other things>
#Get file size , print it , process it...
#Os.stat will provide the file size in (.st_size) property.
#The file size will be shown in bytes.
import os
fsize=os.stat('filepath')
print('size:' + fsize.st_size.__str__())
#check if the file size is less than 10 MB
if fsize.st_size < 10000000:
process it ....
推荐文章
- 如何删除Python中的前导空白?
- python中的assertEquals和assertEqual
- 如何保持Python打印不添加换行符或空格?
- 为什么Python的无穷散列中有π的数字?
- Python 3.7数据类中的类继承
- 如何在PyTorch中初始化权重?
- 计数唯一的值在一列熊猫数据框架像在Qlik?
- 使用Pandas将列转换为行
- 从matplotlib中的颜色映射中获取单个颜色
- 将Pandas或Numpy Nan替换为None以用于MysqlDB
- 使用pandas对同一列进行多个聚合
- 使用Python解析HTML
- django MultiValueDictKeyError错误,我如何处理它
- 如何在for循环期间修改列表条目?
- 我如何在Django中创建一个鼻涕虫?