在指定的盘符,搜索出给定后缀名的文件

# -*- coding: cp936 -*-
#python 27
#xiaodeng
#http://www.cnblogs.com/hongten/p/hongten_python_file_info.html
#在指定的盘符,搜索出给定后缀名的文件


#本脚本知识点:
#os.listdir():返回指定目录下的所有文件和目录名(文件夹)
#os.path.getsize(name):获得文件大小,如果name是目录返回OL
#os.path.join(path,name):连接目录与文件名或目录
#os.walk(DESK),返回结果,三个参数 1.父目录,文件的目录;2.所有文件夹名字(不含路径);3.所有文件名字



import os
import time
now =  str(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))#当前时间




#####################《需要修改的参数》#################################
#指定盘符
DESK=r'C:python'#如路径包含中文,r不能丢~~

#信息保存文件的路径
SAVE_FILE = 'C:UsersAdministratorDesktop新浪APIinfo.log'

#需要查找的文件后缀类型
FILE_TYPE = ['py','txt']



#####################《全局变量定义》#################################
#文件计数
FILE_COUNT=0        
#目录计数
DIR_COUNT=0         
#文件名(含绝对路径)总计
ABS_FILES=[]
#符合要求的文件总数
YES_FILES_COUNT=[]
#不符合要求的文件总数
NO_FILES_COUNT=[]

    



#主程序开始
#os.walk(DESK)返回结果,三个参数(具备递归功能)。1.父目录,文件的目录;2.所有文件夹名字(不含路径);3.所有文件名字
for parent,dirnames,filenames in os.walk(DESK):    
    #计算总共的文件夹个数
    DIR_COUNT=DIR_COUNT+len(dirnames)

    #计算总共的文件个数
    FILE_COUNT=FILE_COUNT+len(filenames)

    #提取符合要求的文件数据
    for file in filenames:
        for key in FILE_TYPE:#遍历需要查询的特定后缀的文件,如:txt
            if key in file:
                YES_FILES_COUNT.append(key)#符合要求的文件总数
                filepath=os.path.join(parent,file)#文件绝对路径
                size=os.path.getsize(filepath)#获取文件大小
                string='%s	%s	%s'%(now,filepath,size)
                ABS_FILES.append(string)
                
                               
#完成写入和打印操作
if __name__=='__main__':
    #写入文件
    info=open('info.log','w+')
    for files in ABS_FILES:
        info.write(files+'
')
    info.close()
    print '查询结果:'
    print '##'*20
    print '总文件夹数量:',DIR_COUNT,'总文件数量:',FILE_COUNT
    #print '文件名汇总:',FILES

    NO_FILES_COUNT=FILE_COUNT-len(YES_FILES_COUNT)
    print '符合要求的文件总数:',len(YES_FILES_COUNT),'不符合要求的文件总数:',NO_FILES_COUNT
        

'''
查询结果:
########################################
总文件夹数量: 4 总文件数量: 7
符合要求的文件总数: 3 不符合要求的文件总数: 4
'''
原文地址:https://www.cnblogs.com/dengyg200891/p/4933974.html