import os
allFilePath = [] # 存放所有的文件路径
dirSize = 0 # 文件夹大小 单位:字节
# 获取文件夹下的所有文件
def getAllFilePath(path):
'''
这个思路可以延伸做一个文件查找器:把所有文件、文件夹添加进数组 然后 in 数组 可以反馈搜索结果
'''
# 文件夹结尾判断有没有'/'
if path[-1].__eq__('/'):
pass
else:
path = path + '/'
global allFilePath # 全局变量
fileList = os.listdir(path) # 获得文件夹下面的所有内容
for i in fileList:
if os.path.isdir(path + i): # 如果是文件夹 那就再次调用函数去递归
getAllFilePath(path + i) # 调用自己
else:
'''
如果你只想获得某类文件 比如'.xml'结尾的文件 可以用正则表达式 demo如下
'.' 匹配除换行符 \n 之外的任何单字符
'+' 至少出现一次
'\.' 转义. 因为.在正则表达式中是关键字 所以需要转义
'$' 以什么结尾('^' 以什么开头)
if re.match('.+\.xml$', i):
allFilePath.append(path + i)
'''
allFilePath.append(path + i) # 把文件的名字加入数组
# 获取文件夹的大小
def getDirSize(path):
# 文件夹结尾判断有没有'/'
if path[-1].__eq__('/'):
pass
else:
path = path + '/'
global dirSize # 全局变量
fileList = os.listdir(path) # 获得文件夹下面的所有内容
for i in fileList:
if os.path.isdir(path + i): # 如果是文件夹 那就再次调用函数去递归
getDirSize(path + i) # 调用自己
else:
size = os.path.getsize(path + i) # 获取文件的大小
dirSize = dirSize + size # 叠加
if __name__ == '__main__':
getAllFilePath('/Users/apple/Downloads/Video')
print(allFilePath)
getDirSize('/Users/apple/Downloads/Video')
print(str(int(dirSize / 1048576)) + ' MB')
python获取文件下的所有文件、文件夹的大小
最新推荐文章于 2024-09-03 11:31:52 发布