应用示例
某一文件夹中有200多个城市的2002-2024年政府工作报告,需要批量删除文件夹中2010年之前的所以文件,使用Python的`os`模块来遍历文件,并根据文件名中的年份进行判断和删除。
代码解释
以下是一个代码示例:
# 1. **导入模块**:
# - `os`:用于文件和目录操作。
# - `re`:用于正则表达式操作。
# 2. **定义目标文件夹路径**:
# - 使用原始字符串(以`r`开头)来定义文件夹路径,避免反斜杠转义。
# 3. **正则表达式匹配年份**:
# - `year_pattern`:匹配文件名中的四位数字(年份)。
# 4. **遍历文件夹中的所有文件**:
# - 使用`os.listdir(folder_path)`获取文件夹中的所有文件名。
# - 对每个文件名使用正则表达式进行匹配,提取年份。
# 5. **删除2010年之前的文件**:
# - 如果年份匹配成功且小于2010年,构造文件的完整路径。
# - 使用`os.remove(file_path)`删除文件,并打印删除日志。
# - 捕获和打印删除文件时可能出现的异常。
代码
import os
import re
# 目标文件夹路径
folder_path = r"D:\\download\\文件夹名称"
# 正则表达式匹配文件名中的年份,文件的名称格式为“北京2010”,确保所以文件名称统一,根据需要自行修改
year_pattern = re.compile(r'(\d{4})')
# 遍历文件夹中的所有文件
for filename in os.listdir(folder_path):
# 匹配文件名中的年份
match = year_pattern.search(filename)
if match:
year = int(match.group(1))
# 如果年份小于2010年,删除文件
if year < 2010:
file_path = os.path.join(folder_path, filename)
try:
os.remove(file_path)
print(f"Deleted file: {file_path}")
except Exception as e:
print(f"Error deleting file {file_path}: {e}")
注意事项
# - **备份数据**:在运行此脚本之前,建议备份文件夹中的数据,以防误删重要文件。
# - **测试脚本**:在实际删除文件之前,可以先打印出要删除的文件路径,确认无误后再执行删除操作。
# 你可以将此代码保存为Python脚本文件(例如`delete_old_files.py`),然后在终端或命令提示符中运行它。
本人也在学习中,如有错误和需改进的地方还请包涵和指教。