有用的Python

生活中使用Python的小例子,代码已经放到下面链接中

这个只是一个简单的应用,是根据我所处理的文件来编写的

如果你也想用它处理你的文件,请自行修改代码

'''
功能预设:
把文件从子文件夹中提取出来,让学生看起来更加轻松简单
第一步:遍历目标文件夹,判断有哪些子文件夹需要我们进行处理
第二步:进入到需要处理的子文件夹里面,把所有文件的地址记录出来
第三步:把所需要处理的文件挪到子文件的最外层
第四步:删除空的文件夹

要用到的函数
os.listdir 遍历这个文件夹
os.path.isdir   判断是不是文件夹
os.remove 删除文件
shutil.move(“oldpos”,”newpos”)   移动文件到新文件夹
os.path.exists() 判断文件夹是否存在
os.redir(r“c:\python”)  删除文件夹,不能删除由内容的文件
'''

import os,shutil

def search_file(path,list_t,list_dir):
    list1 = os.listdir(path)#遍历path
    for i in list1:#逐个判断是不是文件夹
        path1 = path+ '/' + i
        if os.path.isdir(path1):#是文件夹就进入到这个文件夹中判断里面有没有文件
            if path1 not in list_dir:#把这个文件夹存到列表中,方便一会删掉
                list_dir.append(path1)
            search_file(path1,list_t,list_dir)#继续判断
        else:
            list_t.append(path1)

def move_file(path_new,list_t):#path_new目标地址,list_t存放需要移动文件地址的列表
    for i in list_t:
        path_temp = os.path.split(i)
        if path_temp[0] != path_new:#判断这个文件就在目标文件夹中,如果是就不需要移动
            try:#移动文件
                shutil.move(i,path_new)
            except shutil.Error:#如果目标地址已经有了同名文件,就不再移动了,直接删掉准备移动的文件
                os.remove(i)

def delate_dir(list_t):
    for i in list_t[::-1]:#删除文件夹,防止删除出错,倒着删除文件
        if os.path.exists(i):#判断文件夹是不是存在,不存在就不需要删
            os.rmdir(i)#删除文件夹,注意文件夹必须为空
            
 #遍历所有文件
path = r"文件地址"
dir_list = os.listdir(path)

#for循环处理dir_list
for i in dir_list:
    list1 = []#存文件地址
    list2 = []#存空的文件地址
    search_file(path+ "/" + i,list1,list2)#进入到i中,找到里面的文件,把它的地址存到参数list1里面
    move_file(path+ "/" +i,list1)#把list1里面的文件移动到i里面
    delate_dir(list2)#删除空文件夹

猜你喜欢

转载自blog.csdn.net/qq_37525888/article/details/130570827