You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python用schedule定时删除docx文件报错及无法删除问题求解

问题解决方法

核心问题根因

  • 逻辑错误:删除操作传入的是目标文件夹路径,而非匹配到的.docx文件路径。os.unlink()仅用于删除文件,传入文件夹路径必然触发报错,也不可能实现删除指定后缀文件的需求
  • 权限适配问题:你仅给Terminal授予了全磁盘权限,若你通过PyCharm直接运行代码,需要额外给PyCharm授予全磁盘访问权限,否则依然会触发权限异常

修正后的完整代码

import os
import time
import schedule

# 统一配置目标路径,避免重复书写出错
TARGET_DIR = "/Users/xxx/Desktop/FYP 1st Draft"

def delete_files():
    for file in os.scandir(TARGET_DIR):
        # 只处理普通文件,跳过子文件夹
        if file.is_file() and file.name.endswith(".docx"):
            try:
                os.unlink(file.path)
                print(f"已删除文件:{file.name}")
            except Exception as e:
                print(f"删除文件{file.name}失败:{str(e)}")

schedule.every().minute.do(delete_files)

if __name__ == "__main__":
    print("定时删除任务已启动,每分钟扫描一次目标文件夹")
    while True:
        schedule.run_pending()
        time.sleep(1)

额外注意事项

  • 原代码中csv_count变量未被实际使用,可以直接删除;原函数名delectfiles为拼写笔误,修正为更规范的delete_files不影响功能运行
  • 如果你需要连带子文件夹内的.docx也删除,可以改用os.walk遍历目录
  • 首次运行前可以先注释掉os.unlink行,只打印匹配到的文件,确认匹配逻辑符合预期后再开启删除操作,避免误删文件

内容的提问来源于stack exchange,提问作者Bellasere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:54:01