在Python的文件操作中,os模块提供了许多实用的方法,其中包括了文件大小的操作。以下将从多个方面详细阐述Python中os模块提供的文件大小操作方法。
一、获取指定文件大小
os模块中,可以使用os.path.getsize()方法获取指定文件的大小,该方法的参数为文件路径,返回值为文件大小,单位为字节。
import os
file_path = 'example.txt'
file_size = os.path.getsize(file_path)
print('文件大小:', file_size)
以上代码会输出example.txt文件的大小,例如输出结果为文件大小: 563,其中文件大小为563个字节。
二、获取文件夹大小
除了获取单个文件大小,os模块也可以获取整个文件夹的大小。可以利用os.walk()方法遍历指定文件夹内的所有文件和子文件夹,然后累加计算文件大小,最终可以得到整个文件夹的大小。
import os
folder_path = 'example_folder'
folder_size = 0
for foldername, subfolders, filenames in os.walk(folder_path):
for filename in filenames:
file_path = os.path.join(foldername, filename)
folder_size += os.path.getsize(file_path)
print('文件夹大小:', folder_size, '字节')
以上代码会输出example_folder文件夹的大小,例如输出结果为文件夹大小: 1400 字节,其中文件夹大小为1400个字节。
三、单位转换
对于文件大小,单位往往是比较大的,字节不太直观,通常在输出时需要进行单位转换。可以利用以下代码将字节转换成MB、GB或TB。
import os
def convert_size(size_bytes):
# 1 MB = 1 048 576 bytes
# 1 GB = 1 073 741 824 bytes
# 1 TB = 1 099 511 627 776 bytes
units = ['B', 'KB', 'MB', 'GB', 'TB']
i = 0
while size_bytes >= 1024 and i < len(units)-1:
size_bytes /= 1024
i += 1
return f'{round(size_bytes, 2)} {units[i]}'
file_path = 'example.txt'
file_size = os.path.getsize(file_path)
print('文件大小:', convert_size(file_size))
以上代码中,convert_size()方法可以将传入的字节数转换成B、KB、MB、GB或TB等易读的单位,其中1MB=1048576字节、1GB=1073741824字节、1TB=1099511627776字节。例如文件大小为1073741824字节时,转换后的结果为1 GB。
四、参考资料
Python官方文档:https://docs.python.org/3/library/os.html
以上就是关于Python中os模块提供的文件大小操作方法的详细阐述,包括获取指定文件大小、获取文件夹大小、单位转换等内容。