专业编程基础技术教程

网站首页 > 基础教程 正文

python将目录中所有带有日期的文件改成指定的日期

ccvgpt 2025-01-05 16:05:06 基础教程 2 ℃

引言:

要将目录中所有带有日期命名的文件改成指定的日期

案例截图:

实现将目录下的所有带有日期的文件改成指定的日期文件

python将目录中所有带有日期的文件改成指定的日期

Python代码示例:

代码实现功能如下:

  1. 获取今天的日期,并格式化成合适的字符串,例如YYYYMMDD。
  2. 遍历目标文件夹中的所有文件名,找出带有日期的文件名。
  3. 使用os.rename函数将每个带有日期的文件名修改为今天的日期。
import os
import datetime
import re

def change_files_to_today_date(folder_path):
    try:
        #todo 获取今天的日期,格式为YYYYMMDD
        today_date = datetime.date.today().strftime('%Y%m%d')
        
        #todo 遍历目标文件夹中的文件
        for filename in os.listdir(folder_path):
            file_path = os.path.join(folder_path, filename)
            if os.path.isfile(file_path):
                #todo 使用正则表达式匹配带有日期的文件名
                match = re.search(r'(\d{8})', filename)
                if match:
                    #todo  提取原始文件名中的日期部分
                    old_date = match.group(0)
                    #todo  构建新的文件名,将日期部分替换为今天的日期
                    new_filename = filename.replace(old_date, today_date)
                    #todo  修改文件名
                    os.rename(file_path, os.path.join(folder_path, new_filename))
                    print(f"Renamed file '{filename}' to '{new_filename}'.")
    except Exception as e:
        print(f"Error renaming files: {e}")

# 示例用法
if __name__ == "__main__":
    target_folder = 'D:/2025/'  # 目标文件夹路径
    change_files_to_today_date(target_folder)


代码说明:

  • 获取今天的日期:使用datetime.date.today().strftime('%Y%m%d')获取当前日期,并格式化为YYYYMMDD的字符串,或其他格式YYYY-MM-DD,代码修改部分datetime.date.today().strftime('%Y-%m-%d')即可。
  • 遍历文件夹:使用os.listdir(folder_path)列出目标文件夹中的所有文件名。
  • 正则表达式匹配:使用正则表达式(\d{8})匹配文件名中的日期部分(8位数字)。
  • 文件重命名:对于每个匹配到日期的文件名,使用os.rename将文件名中的日期部分替换为今天的日期或者指定的日期。

最近发表
标签列表