生活中使用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)#删除空文件夹