python脚本自动删除空文件夹和非指定类型文件(附赠批量重命名)

python脚本自动删除空文件夹和非指定类型文件

  • python脚本自动删除空文件夹和非指定类型文件
    • 直接上代码吧:

直接上代码吧:

# -*- coding: utf-8 -*-
"""
Created on Sun Sep 16 22:51:27 2018
@author: lele
"""
import os  # 引入文件操作库
#指定保留的文件类型是图片,然后先建立一个后缀的集合
image1 = {'jpg','jpeg','bmp','png','tif','JPG','JPEG','BMP','PNG','TIF'}

#定义一个删除空文件和非指定类型文件的函数
def delete_null_dir(parent):
#如果是文件夹的话,那么进入下面的循环
    if os.path.isdir(parent):
        # print("进入删除模式:"),这里你不清楚,直接可以print变量,看看到底是啥
        # 如p是打开parent这个目录里面的文件和文件夹。
        for p in os.listdir(parent):
            try:
            # 判断后缀是否在集合里,如果没有后缀,那么就是文件夹了
                if(p.split('.')[-1] not in image1):
                #不在的话,就直接删了
                    os.remove(os.path.join(parent,p))
                    print("p:",p)
                    print("删除成功!")
            except :
                print("not file~")
            # 这是一个递归还是嵌套?反正就是可以一次性扫光你根目录下,所有的文件和文件夹。
            # d是将路径和新的文件夹名联合起来,如果新的路径d是文件夹,再次调用这个函数
            d  = os.path.join(parent,p)
            if (os.path.isdir(d) == True):
                delete_null_dir(d)
     # os.listdir(parent)拿到文件夹里的所有东西,如果为空,就是空文件夹
     # 所以这个判断,就是删除所有为空的文件夹。
    if not os.listdir(parent):
        print(parent)
        os.rmdir(parent)
        print("删除成功!")

    # 附赠一个重命名的函数
def rename(parent):
    if os.path.isdir(parent):
        document = []
        for p in os.listdir(parent):
            try:
                document.append(p)
            except :
                print("not document~")
            d  = os.path.join(parent,p)
            # print(d)
            if (os.path.isdir(d) == True):
                rename(d)
        print("----")

        print(document)

        if(len(document)>0):
            old_path_name = parent.split("\\")[-1]
            print("old_path_name:",old_path_name)
            change = input("是否需要修改(y/n)?")
            if(change=='y'):
                new_name_mode = input("请输入新的名字模板:")
                print("new_name_mode:",new_name_mode)

                i = 1
                for doc in document:
                    print("doc:",doc)
                    print('后缀:')
                    print(doc.split('.')[-1])
                    new_name = new_name_mode+'_'+str(i)+'.'+doc.split('.')[-1]
                    os.rename(os.path.join(parent,doc),os.path.join(parent,new_name))
                    print("改名成功")
                    i += 1

if __name__ == "__main__":  # 执行本文件则执行下述代码
    path = r'E:/【分子模块设计育种创新体系】文件归档整理汇总'
    # delete_null_dir(path)
    rename(path)

你可能感兴趣的:(Python,教程,学习笔记)