74Y1085 发表于 2023-2-22 22:23

Python文件夹 查找匹配更名求助

求助一项 python对文件夹名称按照 对应数据匹配的批量重命名,很多小工具都可以实现批量命名..但是文件夹的排序有时杂乱无章导致需要这个想法查找到文件夹对应的新修改值后命名。
例:文件夹(01 Excel基础操作)        改成        (01 文档系统操作) 文件夹名中包含符号的

ljl9090 发表于 2023-2-22 23:40

我觉得可以
1.把修改前后的名称读取表格后,定义为一个字典;
2.然后遍历大文件夹下各个文件夹
os.listdir(‘大文件夹名’) ,
然后通过 os.rename('修改前文件夹名','修改后文件夹名')

cflying 发表于 2023-2-23 09:37

既然都已经有了对应关系了,直接一边遍历对应关系,一边改名不就得了,这里注意要对重名进行处理下就行

saszznz 发表于 2023-2-23 09:50

know1234 发表于 2023-2-23 10:18

本帖最后由 know1234 于 2023-2-23 10:55 编辑

#pip install opencv-contrib-python -i https://pypi.douban.com/simple
#!/usr/bin/python
# -*- coding: UTF-8 -*-

import openpyxl
import os

excel = openpyxl.load_workbook("001.xlsx")

#读取分表
ws = excel['Sheet1']

rows = ws.max_row #获取最大行

columns = ws.max_column #获取最大列
#创建一个空字典,用于存放原文件名和新文件名;excel左代表原文件名,右代表待修改的新文件名
data_dict ={}
#通过for遍历到字典
for i in range(2,rows+1):
    data_dict = str(ws.cell(i,2).value)

#要批量修改的上级文件夹路径
input_dir = r'D:\py01\json\name\des'
#遍历待修改的文件夹名
for video_name in os.listdir(input_dir):

    #这是待修改的文件路径
    video_path = os.path.join(input_dir, video_name)
    #将待修改的文件名与excel表提取的原文件名匹配
    if(data_dict.get(video_name)):
      #更名
      try:
            os.rename(video_path,input_dir+"\\"+ data_dict.get(video_name))
      except FileExistsError:
            print(data_dict.get(video_name)+":"+"文件已存在")
    else:
      print(video_name+":未在excel表中找到")

74Y1085 发表于 2023-2-23 19:12

saszznz 发表于 2023-2-23 09:50
import os

file_name_map = {'Excel基础操作': '文档系统操作',


感谢,感谢!学习了
页: [1]
查看完整版本: Python文件夹 查找匹配更名求助