python 递归查找jpg文件并打印

Posted eosclover

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

 

以上是关于python 递归查找jpg文件并打印的主要内容,如果未能解决你的问题,请参考以下文章

python 实现本地查找文件,并打印(os for os.open chdir)

python 从HTML页面查找对外部脚本和样式表的引用,并打印这些文件的下载说明。

递归查找jpg文件-bash

Python树形打印目录结构

Python实现对文件夹内文本文件递归查找

Python在文件中查找字符串,编辑行并保存到新文件