python 递归查找jpg文件并打印

文件递归  查找出以('jpg', 'gif', 'png','JPG', 'GIF', 'PNG') 结尾的文件并打印

遇到的bug: 好几个文件夹下面的照片都是以大写格式的JPG 显示的,当时只考虑到小写, 导致其他文件以.JPG结尾的文件都打印不出来。。。导致问题定位了很久   

遗留:压缩包的文件(rar 或zip )暂未处理 

  思路:文件解压 pip3 install rarfile 得将unrar.exe放在当前脚本的同一目录下

import os
#import rarfile


def get_picture(filepath, layer):
    #遍历filepath下所有文件,包括子目录
    prefix = joinStr('-', layer)
    layer += 1

    if os.path.isdir(filepath):
        print(prefix, ' 文件夹 ', filepath, " size=", os.path.getsize(filepath))
    else:
        print(prefix, ' 文件 ', filepath, " size=", os.path.getsize(filepath))
        return

    files = os.listdir(filepath)
    for fi in files:
        #文件路径
        fi_d = os.path.join(filepath,fi)
        if os.path.isfile(fi_d):
            prefix = joinStr('-', layer)
            if os.path.basename(fi_d).endswith(('jpg', 'gif', 'png','JPG', 'GIF', 'PNG')):
                print(prefix, fi_d, " size=", os.path.getsize(fi_d))
            elif fi_d.endswith(('.zip', '.rar')):
                    print(prefix, "发现压缩包: ", fi_d, " size=", os.path.getsize(fi_d))
                    # rf = rarfile.RarFile(fi_d)# 待解压文件
                    # current_path=fi_d.split('.')[0] #
                    # rf.extractall(current_path)  # 解压到当前文件路径下
                    # if os.path.isdir():
                    #    get_picture(current_path)
                    # rf.close()
            else:
                print(prefix, ' 其他文件 ', fi_d, " size=", os.path.getsize(fi_d))
        # 判断是否是文件夹
        #如果是个dir,则再次调用此函数,传入当前目录,递归处理。
        elif os.path.isdir(fi_d):
            get_picture(fi_d, layer)
        else:
            print("你弱爆了")
    #return

def recursorFile(filePath, layers):
    """
    :param filePath: 文件对象
    :param layers: 层数
    """
    front = joinStr("-", layers)
    print(front, end="")

    print(os.path.basename(filePath))


def joinStr(str, times):
    rs = ""
    for i in range(times):
        rs += str
    return rs

#recursorFile('F:\照片', 3)
get_picture('F:\照片', 0)
原文地址:https://www.cnblogs.com/eosclover/p/11407512.html