您的位置:

Python中os模块提供的文件大小操作方法

在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模块提供的文件大小操作方法的详细阐述,包括获取指定文件大小、获取文件夹大小、单位转换等内容。