如何在Python中获取文件的大小?


当前回答

使用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提供了一种访问其他文件相关操作的简单方法。

其他回答

#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 ....

使用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提供了一种访问其他文件相关操作的简单方法。

如果我想从字节转换到任何其他单位,我使用位移位技巧。如果右移10,基本上就是按一个数量级(倍数)移动。

例如:5GB为5368709120字节

print (5368709120 >> 10)  # 5242880 kilobytes (kB)
print (5368709120 >> 20 ) # 5120 megabytes (MB)
print (5368709120 >> 30 ) # 5 gigabytes (GB)

我们有两个选择,都包括导入os模块

1)

import os
os.stat("/path/to/file").st_size

作为os.stat()函数返回一个包含许多头文件的对象,包括文件创建时间和最后修改时间等。其中st_size给出了文件的确切大小。 文件路径可以是绝对路径也可以是相对路径。

2) 在这里,我们必须提供准确的文件路径,文件路径可以是相对路径也可以是绝对路径。

import os
os.path.getsize("path of file")

你可以使用os模块中的stat()方法。您可以为它提供字符串、字节甚至PathLike对象形式的路径。它也适用于文件描述符。

import os

res = os.stat(filename)

res.st_size # this variable contains the size of the file in bytes