python批量修改文件名称和批量删除文件与文件夹

1.批量修改文件名称

在这里将要用到python中的os模块。
1.os.listdir(dir) : 获取指定目录下的文件名称
2.os.rename(oldfile,newfile) : 修改文件名字
3.re.findall() :这里需要用到正则表达式匹配需要的关键字
4.os.path.isdir(path) : 判断该文件是否文件夹
接下来我们修改上一篇文章中创建的10个txt文件成html格式的文件,以下是代码。

import os
import re			#导入模块
path = './'			#当前文件路径
dirs = os.listdir(path)	#获取当前路径下是所有文件
for i in dirs:		#遍历所有当前路径下的文件
    fname = re.findall('(.*)\.',i)
    type = re.findall('(\..*)',i)
    # newI和type分别获取了当前路径下文件的文件名和文件格式
    
    newfname = (" ").join(fname)
    newtype = (" ").join(type)
	# *re.findall*获取出来的文件是列表,若列表在路径中,修改文件名时候会报错.
	# 所以这里用join函数将他们转换为字符串
	
    oldname = path + i	# 原来文件的名称 (路径 + 文件名)
    newname = path + newfname + newtype	(路径 + (新名称) + 文件格式)
    os.rename(oldname, newname)	# os模块的rename函数 修改名字(旧名字,新名字)
    print("%s====>>>%s" % (oldname, newname))

若不需要修改目标路径下面的文件夹,可以在上面添加函数os.path.isdir跳过.

if os.path.isdir(i)		# 如果是文件夹,则跳过
	pass

修改前为txt格式的文件:
修改前的txt文件
修改后为html格式的文件:
在这里插入图片描述

2.批量删除文件与文件夹

下面们来说一下如何在pyhton中去批量删除文件与文件夹,代码献上
在这里需要用到两个模块

  1. os.listdir(path) : 遍历指定路径下的所有文件和文件夹(不递归)
  2. os.rmeove(filename): 删除指定文件(!!注意,是文件)
  3. os.path.isdir(path) : 判断文件是否为文件夹
  4. shutil.rmtree(path) : 递归删除指定路径的文件和文件夹
## 批量删除文件或文件夹
import os
import shutil				#导入模块
path = './test/'			#指定路径
dirs = os.listdir(path)		#遍历指定路径下的所有文件
# 判断是文件还是文件夹, 若是文件夹 全部删除  若是文件 跳过
for i in dirs:
    if os.path.isdir(path+i):	#判断是否为文件夹
        # os.removedirs(path+i) #该命令只能删除空目录
        #该命令可递归删除文件夹,慎用!!该文件夹和文件夹里面所有内容会被删除.
        
        shutil.rmtree(path+i) 
        print("%s目录 已删除"%i)
        
    else:					#如果不是文件夹,则为文件	
        os.remove(path+i) #该命令删除文件
        print("%s文件 已删除"%i)
发布了34 篇原创文章 · 获赞 210 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_45081575/article/details/94408660