如何在Python中获取文件大小?
我们可以按照不同的方法来获取Python中的文件大小。在Python中获取文件大小以监视文件大小或根据文件大小对目录中的文件进行排序非常重要。
方法一:使用os.path模块的getsize函数
此函数将文件路径作为参数,并返回文件大小(字节)。
例子:
Python3
# approach 1
# using getsize function os.path module
import os
file_size = os.path.getsize('d:/file.jpg')
print("File Size is :", file_size, "bytes")
Python3
# approach 2
# using stat function of os module
import os
file_size = os.stat('d:/file.jpg')
print("Size of file :", file_size.st_size, "bytes")
Python3
# approach 3
# using file object
# open file
file = open('d:/file.jpg')
# get the cursor positioned at end
file.seek(0, os.SEEK_END)
# get the current position of cursor
# this will be equivalent to size of file
print("Size of file is :", file.tell(), "bytes")
Python3
# approach 4
# using pathlib module
from pathlib import Path
# open file
Path(r'd:/file.jpg').stat()
# getting file size
file=Path(r'd:/file.jpg').stat().st_size
# display the size of the file
print("Size of file is :", file, "bytes")
# this code was contributed by debrc
输出:
File Size is : 218 bytes
方法二:使用OS模块的stat函数
此函数将文件路径作为参数(字符串或文件对象)并返回有关作为输入给出的文件路径的统计详细信息。
例子:
蟒蛇3
# approach 2
# using stat function of os module
import os
file_size = os.stat('d:/file.jpg')
print("Size of file :", file_size.st_size, "bytes")
输出:
Size of file : 218 bytes
方法三:使用文件对象
要获取文件大小,请按照以下步骤操作 -
- 使用open函数打开文件并将返回的对象存储在变量中。打开文件时,光标指向文件的开头。
- File 对象具有用于将光标设置到所需位置的seek方法。它接受 2 个参数——开始位置和结束位置。要将光标设置在文件使用方法os.SEEK_END 的结束位置。
- File 对象具有tell方法,可用于获取当前光标位置,该位置相当于光标移动的字节数。所以这个方法实际上以字节为单位返回文件的大小。
例子:
蟒蛇3
# approach 3
# using file object
# open file
file = open('d:/file.jpg')
# get the cursor positioned at end
file.seek(0, os.SEEK_END)
# get the current position of cursor
# this will be equivalent to size of file
print("Size of file is :", file.tell(), "bytes")
输出:
Size of file is : 218 bytes
方法 4:使用 Pathlib 模块
Path 对象的 stat() 方法返回文件的 st_mode、st_dev 等属性。并且, stat 方法的 st_size 属性以字节为单位给出文件大小。
例子:
蟒蛇3
# approach 4
# using pathlib module
from pathlib import Path
# open file
Path(r'd:/file.jpg').stat()
# getting file size
file=Path(r'd:/file.jpg').stat().st_size
# display the size of the file
print("Size of file is :", file, "bytes")
# this code was contributed by debrc
输出:
Size of file is : 218 bytes