本帖最后由 ivor 于 2020-7-14 21:06 编辑
- #! /usr/bin/env python3.8
- # -*- coding:utf-8 -*-
- """
- 匹配多个字符进行重命名
- 最少五个字符匹配才重命名,优先处理匹配最多的
- """
-
- import os
- import shutil
-
-
- def get_max_repeat(txt_data="", filename_list=[], min=5):
- """
- :param txt_data:遍历 文本文档.TXT 比如: 01.文件今天录音 02.小李配音素材aa 03.明天任务日志EFG......
- :param filename_list:当前文件夹下的所有文件包括文件夹
- :param min:最小重复字符包括 「文件名后缀」
- :return:当前文件夹下和txt_data名称匹配最多的文件名
- """
- tmp = dict()
- for f in filename_list:
- if repeat_num := len(set(txt_data) & set(f)) >= min:
- tmp[f] = repeat_num
- if len(tmp) != 0:
- return sorted(tmp.items(), key=lambda x: x[1], reverse=True)[0][0]
- else:
- return None
-
-
- with open('文本文档.TXT', 'rt') as file:
- txt_data = file.readlines()
- file_name = os.listdir('.')
- for i in txt_data:
- i = i.strip('\n\r ')
- if (result := get_max_repeat(txt_data=i, filename_list=file_name)) is not None:
- print("文件:{} 改名为:{}".format(result, i+os.path.splitext(result)[-1]))
- # shutil.move(result,i)
复制代码
/usr/local/bin/python3.8 /Users/mac/Desktop/script/test.py
文件:文件今天录音采访 改名为:01.文件今天录音
文件:小李配音素材a 改名为:02.小李配音素材aa
文件:明天任务日志abc.jpg 改名为:03.明天任务日志EFG.jpg
Process finished with exit code 0
如果运行正确,取消注释最后一行# shutil.move(result,i) |