你好我是小焦,也是好久没分享知识了。杂事太多,也没有太多精力分享。今天给大家分享的也是用python实现快速文件重命名。这几天也是某猪的客户给发的电商商品图格式错了,由于数量太大,人工一个个改要花费太多的时间,那就用python来解决吧。
案例
情况是这样的,客户提供的图片格式是jpe格式,而我们需要的是jpg格式。由于是电商商品图,不同的类目,不同的商品,每个商品图都是在单独的文件夹下面的。所以层级比较多,我们一个一个去修改不现实。用win自带的ren命令只能重命名同一文件夹下面的文件。
成百上千不同文件夹呢?所以用编程来解决是最快的,还能留着以后用。下面也是写了一个简单的脚本来实现。
# 修改文件夹及所有子目录下的格式
import os
def rename(path,old,new):
# 获取所有的文件名
files = os.listdir(path)
for file in files:
# 原来的文件路径
oldDirPath = os.path.join(path, file)
# 判断是否为文件夹。如果是文件夹则递归调用
if os.path.isdir(oldDirPath):
rename(oldDirPath, old, new)
# 带路径的文件名,splitext方法会将路径和文件扩展名分割为元组
fileName,fileType = os.path.splitext(oldDirPath)
# 判断扩展名是否为我们需要更改的类型,如果是则执行下面操作
if fileType in old:
# 替换扩展名
fileType = new
# 组成新的文件名
newDirPath = fileName + fileType
print("新的文件名为:", newDirPath)
# 重命名
os.rename(oldDirPath, newDirPath)
path = r"E:\WeChat Files\wxid_mmhnczgojx0322\FileStorage\File\2022-01\龟DS 好评1.2~1.4"
old = [".jpe"]
new = ".jpg"
rename(path,old,new)
上面主要使用了递归,遍历目录下的所有层级文件夹和文件进行修改。大家可以根据自身不同需求修改。
评论抢沙发