根据记事本提供的内容,自动更改文件名
网友求助帖子:**根据记事本提供的内容,自动更改文件名**链接:[求根据记事本提供的内容,自动更名的软件 - 吾爱破解 - 52pojie.cn](https://www.52pojie.cn/thread-1978300-1-1.html)
其实求助者提供的网盘内的书表是一个CSV文件,如果用CSV格式就不会出现书名中逗号分隔的错误了
代码分5个部分:
main()方法主要是获取目录信息并调用相关方法进行处理
processing_data() 方法主要是对文本文件的内容进行处理
rename_files()方法为改名的方法
filter_special_symbol()方法主要处理文件名有特殊符号报错。
create_files()方法为创建一批文件进行测试
直接上代码:
```python
"""
Date:2024/11/5 16:29
File : readTxtFile.py
"""
import os.path
import re
def filter_special_symbol(file):
"""
把不能作为文件名的特殊符号替换成下划线
:param file: 待判断文件名
:return: 不包含不能作为文件名的特殊符号的文件名
"""
r_str = r"[\/\\\:\*\?\"\<\>\|]"# '/ \ : * ? " < > |'
new_title = re.sub(r_str, "_", file)# 替换为下划线
return new_title
def create_files(item, root_path):
"""
创建一批文件
:param item: 包含文件名的字典
:param root_path: 创建路径
:return: None
"""
if not os.path.exists(root_path):
os.mkdir(root_path)
for i in item.keys():
with open(fr"{root_path}\{i}.txt", 'w', encoding='utf-8') as f:
f.write(item)
def processing_data(file_path):
"""
对书表进行处理
:param file_path: 书表的目录
:return: 返回一个key为原文件名 value为新文件名 的字典
"""
item = {}
with open(file_path, 'r', encoding='utf-8') as f:
for line in f:
try:
if line.split(",").isdigit():
item] = f"2024_{line.split(",")}_{line.split(",")}"
else:
item] = f"2024_{line.split(",")},{line.split(",")}_{line.split(",")}"
except Exception as e:
print(f"{line.strip()} ---> {e}")
return item
def rename_files(item, root_path):
"""
重命名模块
:param item: key为原文件名 value为新文件名 的字典
:param root_path: 文件的所在目录
:return: None
"""
for file in os.listdir(root_path):
file_key = os.path.splitext(file)
if not file_key.isdigit():
continue
src_file_path = os.path.join(root_path, file)
src_file_name = os.path.splitext(file)
new_file_name = filter_special_symbol(item.get(file_key))
new_file_path = src_file_path.replace(src_file_name, new_file_name)
if new_file_name:
try:
os.rename(src_file_path, new_file_path)
except Exception as e:
print(e)
else:
print(f"出错~~~{file}")
def main():
"""
启动
:file_path书表文件路径
:root_folder待改名文件目录
:return: None
"""
file_path = input("请输入书表的文件路径:")
root_folder = input("请输入待改名的目录:")
if os.path.exists(root_folder) and os.path.exists(file_path):
# 获取文件的目录
# print(root_folder)
# 处理数据
res = processing_data(file_path)
# print(len(res), res)
# 创建一批文件
# create_files(res, root_folder)
# 重命名文件
rename_files(res, root_folder)
if __name__ == '__main__':
main()
``` for line in f:也仅仅是用第一行当作文件名,本以为是AI自动提炼出文章内容为文件名。。。。。。 看这种优雅的代码是种享受!{:1_921:} 我还以为是ai提取内容自动生成{:301_993:} 看不懂我还以为是ai提取内容自动生成
页:
[1]