知识摘要:
路径获取方法:
os.getcwd()、代码指定、用户输入
输入数值:
eval(input(“筛选最小输出文件大小:”))
os 文件遍历、筛选(文件/文件夹)、获取文件大小
os.listdir 当前路径遍历 os.walk 目录树 os.path.isdir os.path.isfile os.path.getsize
路径拼接
GR:full_path = path_input+’\‘+fold #双反斜杠 os.path.join
'''文件说明:
获取指定目录下的所有文件(夹)大小,筛选大小输出
版本:
V0.2 处理了无法访问文件的报错、以及“开始菜单”报错(return 0)
V0.3 添加while循环持续运行
'''
import os
'''函数说明:
输入:完整路径;输出:文件大小(M)
GR注:文件大小与文件实际占用空间不同'''
def get_size(start_path):
total_size = 0
if os.path.isdir(start_path): #判断为文件夹
for root, dirs, files in os.walk(start_path): #遍历文件树
for f in files: #root下所有的文件
fp = os.path.join(root, f) #获取完整路径名 路径+文件名
# if not os.path.islink(fp): #略过快捷方式么??
try: #实测某些文件无法获取大小信息
total_size += os.path.getsize(fp) #getsize() 参数必须带路径
except:
print("文件",f,"无法访问")
return round(total_size/1024/1024,2) #返回值单位M,保留两位小数
elif os.path.isfile(start_path): #判断为文件
try:
total_size += os.path.getsize(start_path)
except:
print("文件",start_path,"无法访问")
return round(total_size/1024/1024,2) #返回值单位M,保留两位小数
else:
print("当前路径"+start_path+"既不是文件也不是文件夹?(无法获取大小)")
return 0 #针对 Start Menu的报错问题
while 1:
# path_input = os.getcwd() #获取当前路径
# path_input = "D:\Study\Learn\PythonProject"
path_input = input("输入路径:")
min_output_size = eval(input("筛选最小输出文件大小:")) # 筛选文件大小
folds = os.listdir(path_input) #列表folds:路径下的所有[文件和文件夹]的名称
for fold in folds: #返回的列表元素不带路径
# full_path = os.path.join(path_input, fold) #获取文件的绝对路径
full_path = path_input+'\\'+fold
#等效代码 路径反斜杠需要两个,用于取消转义
size_M = get_size(full_path)
if size_M > min_output_size: #筛选大小
print(fold) # 文件(夹) 名称
print("=" * 15,end='') #不换行
print("大小:",size_M,"M",end='') #文件(夹)大小
print("=" * 15)
# var = input("暂停一下:") #测试输出
相关基础知识记录
import os
获取路径方法
os.getcwd获取当前目录、程序中赋值、用户输入
Dirname = os.getcwd() #获取当前路径
Dirname_2 = “C:/Users/yrzr/Desktop/CNN” #指定默认路径
Dirname_3 = input(“输入路径:”) #输入路径
os.listdir() 获取路径下文件(夹)列表
folds = os.listdir(Dirname) #获取路径下的所有[文件和文件夹]的名称
#返回列表,列表元素不带路径
Ø os.path.isdir/isfile ( ) 判断列表元素具体为何
Ø os.path.getsize 获取文件大小
fold_size = os.path.getsize(full_name) #获取文件大小,参数必须带路径;返回值单位Byte
print(fold,”大小:%.3f”%(fold_size/1024/1024),”M”) #保留三位小数
os.walk() 目录树遍历
作用:通过在目录树中游走输出在目录中的文件名 参数:文件路径 返回值:三元组(root,dirs,files) root——当前目录(路径+文件夹名) Dirs——列表,内容是root中所有的文件夹(不包括子目录) Files——列表,内容是root中所有的文件(不包括子目录)
应用例:自顶向下扫描全部
Os.path.join() 拼接文件路径
GR:直接字符串拼接一样
full_path = path_input+’\‘+fold