##python os 模块使用(文件遍历)
#需求如下
遍历指定目录,完成以下操作
1:判断该目录下所有的文件的名称及大小,文件大小以用户选择的方式显示(KB,MB,B)
list_file() os listdir
file_size() getsize(B)
数据类型
文件名,文件大小---- 字典{key1:value1, key2:value2}
2.找出最大和最小的文件
max_min() max() min()
import os
files={}
root_dir=r"F:\KuGou"
def list_file(root_dir):
if os.path.isfile(root_dir):
size = file_size(root_dir,KB=True)
files[root_dir]=size
else:
for f in os.listdir(root_dir):
file_path=os.path.join(root_dir,f)
if os.path.isfile(file_path):
size=file_size(file_path,KB=True)
files[file_path]=size
else:
list_file(file_path) #递归
def file_size(file_path,KB=False,MB=False):
size=os.path.getsize(file_path)
if KB:
return str(round(size/1024,2)) + ‘KB’
elif MB:
return str(round(size/(1024*1024),2)) + ‘MB’
else:
return size
def max_min():
max_file= max(files,key=lambda x:files[x]) #根据键value值来取最大值的文件名
min_file= min(files, key=lambda x:files[x])
return max_file,min_file
list_file(root_dir)
for key in files:
print(key,files[key])
max_file,min_file=max_min()
print(‘最大文件名:’+ max_file + ’ 文件大小 ’ + files[max_file])
print(‘最小文件名:’+ min_file + ’ 文件大小 ’ + files[min_file])