欢迎访问的小伙伴! 希望在这里能帮到你。有问题请多多指教~ 点击联系站长

如何用Python遍历子目录批量重命名文件

Python 焦康阳 0评论

你好我是小焦,也是好久没分享知识了。杂事太多,也没有太多精力分享。今天给大家分享的也是用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)

上面主要使用了递归,遍历目录下的所有层级文件夹和文件进行修改。大家可以根据自身不同需求修改。

喜欢 (5)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址