计算一个目录的大小可以通过Python的os和os.path模块实现。下面是Python计算一个目录大小的详细攻略:
确定目录路径
在计算一个目录的大小之前,首先需要确定该目录的路径。在Python中可以通过os.path
模块的abspath()
函数获取目录的绝对路径。例如,我们可以使用下面的代码获取当前工作目录的绝对路径:
import os
dir_path = os.path.abspath('.')
print(dir_path)
计算目录大小
确定目录路径之后,就可以使用os
模块来计算目录大小。可以通过os.path
模块的isfile()
和isdir()
函数判断文件是否为文件或目录,从而实现递归计算目录大小。其中,isfile()
函数用于判断是否为文件,返回True
表示为文件,False
表示为目录;isdir()
函数用于判断是否为目录,返回True
表示为目录,False
表示为文件。具体实现如下:
import os
def get_dir_size(dir_path):
size = 0
for root, dirs, files in os.walk(dir_path):
for f in files:
size += os.path.getsize(os.path.join(root, f))
for d in dirs:
size += get_dir_size(os.path.join(root, d))
return size
函数get_dir_size()
接收一个目录路径作为输入参数,使用os.walk()
遍历该目录下的所有文件和子目录,计算它们的大小并累加到size
变量中。其中,os.path.getsize()
函数用于获取文件的大小。
示例
下面是两个示例,演示如何使用Python计算目录大小。
- 计算当前工作目录的大小:
import os
dir_path = os.path.abspath('.')
size = get_dir_size(dir_path)
print(f'The directory size of {dir_path} is: {size} bytes.')
输出信息如下:
The directory size of /path/to/current_directory is: 123456 bytes.
- 计算指定目录的大小:
import os
dir_path = '/path/to/directory'
size = get_dir_size(dir_path)
print(f'The directory size of {dir_path} is: {size} bytes.')
输出信息如下:
The directory size of /path/to/directory is: 789012 bytes.