自动删除指定文件夹中一个月之前的所有文件—python

使用场景:日常使用电脑中,会出现一些不用的文件,但是又不敢确定未来是否会再使用,于是想着创建一个文件夹(NULL)专门存放不确定未来是否使用的文件。但是文件夹(NULL)会越来越大,于是想着就以一个月为周期自动删除超过时间的文件。

亲测有效!!!

目的:用python脚本写自动删除指定文件夹中一个月之前的所有文件 开机1分钟后自动执行(或者双击图标执行),执行完成后出现弹窗给一个处理了哪些文件的提示 。

import os
import sys
import datetime
import time
import tkinter as tk
from tkinter import messagebox
import winreg
def delete_old_files(folder_path):
    # 获取当前日期
    today = datetime.datetime.now()
    # 计算一个月前的日期
    one_month_ago = today - datetime.timedelta(days=30)   
    # 遍历文件夹中的所有文件
    deleted_files = []
    for root, dirs, files in os.walk(folder_path):
        for file in files:
            file_path = os.path.join(root, file)
            # 获取文件的修改时间
            modified_time = datetime.datetime.fromtimestamp(os.path.getmtime(file_path))
            # 如果文件的修改时间早于一个月前的日期,则删除文件
            if modified_time < one_month_ago:
                os.remove(file_path)
                deleted_files.append(file_path)
    return deleted_files
def show_deleted_files(deleted_files):
    if len(deleted_files) > 0:
        message = "已删除以下文件:\n\n" + "\n".join(deleted_files)
    else:
        message = "没有删除任何文件。" 
    root = tk.Tk()
    root.withdraw()
    messagebox.showinfo("文件删除提示", message)
def add_to_startup():
    script_path = os.path.abspath(sys.argv[0])
    key = winreg.HKEY_CURRENT_USER
    key_value = "Software\Microsoft\Windows\CurrentVersion\Run" 
    with winreg.OpenKey(key, key_value, 0, winreg.KEY_ALL_ACCESS) as reg_key:
        winreg.SetValueEx(reg_key, "DeleteOldFilesScript", 0, winreg.REG_SZ, script_path)
# 指定要删除文件的文件夹路径
folder_path = r"E:\桌面文件\NULL"
# 添加脚本到Windows启动项
add_to_startup()
# 等待1分钟
time.sleep(60)
# 删除一个月之前的所有文件
deleted_files = delete_old_files(folder_path)
# 显示已删除的文件
show_deleted_files(deleted_files)

注意:在运行脚本之前,请确保你有足够的权限来删除文件夹中的文件。另外,请谨慎使用该脚本,以免误删重要文件。

在Windows路径中使用反斜杠\时,需要进行转义。

folder_path = r"E:\桌面文件\NULL"

或者使用双反斜杠进行转义:

folder_path = "E:\\桌面文件\\NULL"

注意:在使用tkinter库创建弹窗时,需要安装相应的依赖包。你可以使用以下命令来安装:

pip install tkinter

add_to_startup() 是一个函数或方法的调用,它表示将脚本添加到Windows启动项中。通过将脚本添加到启动项,可以实现在用户登录后自动执行脚本的功能。
具体而言,add_to_startup() 函数或方法可能会执行以下操作:

  1. 打开注册表,并定位到 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 键。
  2. 创建一个新的键值对,其中键是脚本的名称,值是脚本的路径。
  3. 将脚本的路径保存到该键值对中,以便在用户登录时自动运行脚本。

这样,当用户登录到Windows操作系统时,系统会自动查找并运行位于启动项中的脚本。


问题:如何可以不在pycharm中run执行,可以设置双击脚本就执行吗?

可以通过创建一个可执行的Python脚本,并将其与一个快捷方式关联,以便在双击该快捷方式时执行脚本。

  1. 将你的Python脚本保存为.py文件,例如delete_old_files.py。
  2. 在脚本的开头添加以下代码,用于指定Python解释器路径(如果你已经安装了Python解释器,则可以跳过此步骤)
#!/usr/bin/env python
  1. 将脚本保存到一个方便访问的位置,例如桌面。
  2. 右键单击脚本文件,选择“发送到” -> “桌面 (快捷方式创建)”,这将在桌面上创建一个快捷方式。
  3. 右键单击新创建的快捷方式,选择“属性”。
  4. 在“快捷方式”选项卡中,找到“目标”字段,并在字段末尾添加一个空格和脚本文件的完整路径。例如:
"D:\python3.8.0\anzhung\python.exe" "E:\桌面文件\delete_old_files.py"

注意:确保路径中的引号正确包围,并且路径与你的实际情况相匹配。

  1. 点击“应用”或“确定”按钮保存更改。

现在,当你双击桌面上的快捷方式时,脚本将自动执行。

请注意,这种方法假设你已经安装了Python解释器,并且将其路径添加到了系统的环境变量中。如果你的Python解释器路径与示例中的路径不同,请相应地修改快捷方式的目标字段。

希望这可以帮助到你!如果还有其他问题,请随时提问。