码迷,mamicode.com
首页 > 编程语言 > 详细

python 递归查找jpg文件并打印

时间:2019-08-25 13:58:02      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:list   cursor   time   大写   rac   照片   exe   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文件并打印

标签:list   cursor   time   大写   rac   照片   exe   jpg   打印   

原文地址:https://www.cnblogs.com/eosclover/p/11407512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!