#假如我们有一个目录里面包含若干个文件和子目录:
#问题1:我们要统计该目录下有多少个文件并显示出来(包含子目录)
#问题2:该目录总共的大小可以按M,也可以按K显示
#问题3:该目录下最大的文件和最小的文件,以及对应的大小
import os
import os.path
def findFile(path):
num = 0
maxsize = 0
maxpath = ''
for parent,dirnames,filenames in os.walk(path):
for filename in filenames:
num = num +1
print(filename)
print("一共有",num,"个文件")
def getsize(path):
size = 0
for parent,dirnames,filenames in os.walk(path):
size += sum([os.path.getsize(os.path.join(parent, name)) for name in filenames])
print("Total size is: %.3f Mb"%(size/1024/1024))
def get_min_and_max(rootdir):
files = {}
for path,dirnames,filenames in os.walk(rootdir):
for filename in filenames:
filepath = os.path.join(path,filename)
filesize = os.path.getsize(filepath)
files[filename] = filesize
minsize = min(size for size in files.values())
minflie = [f for f , s in files.items() if s == minsize]
for file in minflie:
print("最小文件是:",minflie,end=' ')
print("大小为%.2f mb"%(minsize/1024/1024))
maxsize = max(size for size in files.values())
maxflie = [f for f , s in files.items() if s == maxsize]
for file in maxflie:
print("最小文件是:",maxflie,end=' ')
print("大小为%.2f mb"%(maxsize/1024/1024))
rootdir = '/Users/lu-zyr/Desktop/未命名文件夹'
findFile(rootdir)
getsize(rootdir)
get_min_and_max(rootdir)