From a2ad88e3d69cb7a2d00dd9a9324c4d5d224e55e5 Mon Sep 17 00:00:00 2001 From: frxz751113 <156018267+frxz751113@users.noreply.github.com> Date: Sun, 15 Sep 2024 13:49:01 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E6=9B=B4=E6=96=B0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=90=8D.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- py/更新文件名.py | 59 ++++++++++++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 22 deletions(-) diff --git a/py/更新文件名.py b/py/更新文件名.py index 6a306ce..ff5d5f2 100644 --- a/py/更新文件名.py +++ b/py/更新文件名.py @@ -1,30 +1,45 @@ import datetime import os -# 获取当前日期时间 -now = datetime.datetime.now() -current_date = now.strftime("%m%d") +# 记录时间的文件路径 +time_file_path = '上次更新时间.txt' -# 要重命名的纯中文文件名列表 -chinese_filenames = ['综合源.m3u', '组播优选.txt', '综合源.txt'] +def rename_files(): + try: + # 尝试读取上次记录的时间 + with open(time_file_path, 'r') as time_file: + last_update_time = time_file.read() + print(f"Last update time read: {last_update_time}") + except FileNotFoundError: + last_update_time = "" -# 获取当前目录下的所有文件 -all_files = os.listdir(os.getcwd()) + # 获取当前日期时间 + now = datetime.datetime.now() + current_date = now.strftime("%m%d%H%M") -# 删除以数字加中文形式命名的文件 -for old_filename in all_files: - if any(char.isdigit() for char in old_filename) and (old_filename.endswith('.txt') or old_filename.endswith('.m3u')): - full_old_path = os.path.join(os.getcwd(), old_filename) - if os.path.exists(full_old_path): - os.remove(full_old_path) - print(f"Deleted {old_filename}") + # 获取当前目录下的所有文件 + all_files = os.listdir(os.getcwd()) -# 重命名纯中文文件名的文件 -for old_filename in all_files: - if any(old_filename.endswith(init_filename) for init_filename in chinese_filenames): - new_filename = f"{current_date}{old_filename}" - full_old_path = os.path.join(os.getcwd(), old_filename) - full_new_path = os.path.join(os.getcwd(), new_filename) - os.rename(full_old_path, full_new_path) - print(f"Renamed {old_filename} to {new_filename}") + # 要重命名的文件名列表(初始文件名) + initial_filenames = ['综合源.txt', '组播优选.txt', '网络收集.txt'] + for old_filename in all_files: + # 检查文件是否是需要重命名的文件(根据初始文件名判断) + if any(old_filename.endswith(init_filename) for init_filename in initial_filenames): + if last_update_time and old_filename.startswith(f"{last_update_time}"): + # 如果文件名已包含上次时间,提取原文件名部分并替换为当前时间 + original_filename = old_filename[len(last_update_time):] + new_filename = f"{current_date}{original_filename}" + else: + # 首次重命名,直接加上当前时间 + new_filename = f"{current_date}{old_filename}" + full_old_path = os.path.join(os.getcwd(), old_filename) + full_new_path = os.path.join(os.getcwd(), new_filename) + os.rename(full_old_path, full_new_path) + print(f"Renamed {old_filename} to {new_filename}") + + # 更新记录时间的文件 + with open(time_file_path, 'w') as time_file: + time_file.write(current_date) + +rename_files()