Python计算目录大小攻略
计算目录大小是一个常见的需求,使用Python可以轻松地实现这个功能。Python的标准库os
、os.path
提供了获取文件、目录属性的方法,可以很方便地计算目录大小。
方法一:使用os模块
步骤一:导入os模块
import os
步骤二:编写获取目录大小的函数
def get_dir_size(dir_path):
"""
计算目录大小
:param dir_path: 目录路径
:return: 目录大小,单位为字节
"""
size = 0
for root, dirs, files in os.walk(dir_path):
for file in files:
size += os.path.getsize(os.path.join(root, file))
return size
步骤三:调用函数计算目录大小
dir_path = '/path/to/directory'
dir_size = get_dir_size(dir_path)
print(f'The size of directory {dir_path} is {dir_size} bytes.')
方法二:使用du命令
除了使用Python代码计算目录大小,我们还可以借助系统命令du
来实现。
步骤一:导入subprocess模块
import subprocess
步骤二:编写获取目录大小的函数
def get_dir_size(dir_path):
"""
计算目录大小
:param dir_path: 目录路径
:return: 目录大小,单位为字节
"""
cmd = f'du -sb {dir_path}'
res = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
size = int(res.stdout.split()[0])
return size
步骤三:调用函数计算目录大小
dir_path = '/path/to/directory'
dir_size = get_dir_size(dir_path)
print(f'The size of directory {dir_path} is {dir_size} bytes.')
示例说明
假设我们有一个名为/tmp/mydir
的目录,其中包含5个文件,总大小为100M。
使用方法一计算目录大小:
import os
def get_dir_size(dir_path):
"""
计算目录大小
:param dir_path: 目录路径
:return: 目录大小,单位为字节
"""
size = 0
for root, dirs, files in os.walk(dir_path):
for file in files:
size += os.path.getsize(os.path.join(root, file))
return size
dir_path = '/tmp/mydir'
dir_size = get_dir_size(dir_path)
print(f'The size of directory {dir_path} is {dir_size} bytes.')
输出结果为:
The size of directory /tmp/mydir is 104857600 bytes.
使用方法二计算目录大小:
import subprocess
def get_dir_size(dir_path):
"""
计算目录大小
:param dir_path: 目录路径
:return: 目录大小,单位为字节
"""
cmd = f'du -sb {dir_path}'
res = subprocess.run(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
size = int(res.stdout.split()[0])
return size
dir_path = '/tmp/mydir'
dir_size = get_dir_size(dir_path)
print(f'The size of directory {dir_path} is {dir_size} bytes.')
输出结果为:
The size of directory /tmp/mydir is 104857600 bytes.
两种方法的输出结果相同,均为104857600 bytes。