在这里将要用到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
下面们来说一下如何在pyhton中去批量删除文件与文件夹,代码献上
在这里需要用到两个模块
## 批量删除文件或文件夹
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)
视频讲解链接,请戳:《Python实用技巧之批量创建、修改、删除文件》