自动删除指定文件夹中一个月之前的所有文件—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() 函数或方法可能会执行以下操作:
- 打开注册表,并定位到
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
键。 - 创建一个新的键值对,其中键是脚本的名称,值是脚本的路径。
- 将脚本的路径保存到该键值对中,以便在用户登录时自动运行脚本。
这样,当用户登录到Windows操作系统时,系统会自动查找并运行位于启动项中的脚本。
问题:如何可以不在pycharm中run执行,可以设置双击脚本就执行吗?
可以通过创建一个可执行的Python脚本,并将其与一个快捷方式关联,以便在双击该快捷方式时执行脚本。
- 将你的Python脚本保存为.py文件,例如delete_old_files.py。
- 在脚本的开头添加以下代码,用于指定Python解释器路径(如果你已经安装了Python解释器,则可以跳过此步骤)
#!/usr/bin/env python
- 将脚本保存到一个方便访问的位置,例如桌面。
- 右键单击脚本文件,选择“发送到” -> “桌面 (快捷方式创建)”,这将在桌面上创建一个快捷方式。
- 右键单击新创建的快捷方式,选择“属性”。
- 在“快捷方式”选项卡中,找到“目标”字段,并在字段末尾添加一个空格和脚本文件的完整路径。例如:
"D:\python3.8.0\anzhung\python.exe" "E:\桌面文件\delete_old_files.py"
注意:确保路径中的引号正确包围,并且路径与你的实际情况相匹配。
- 点击“应用”或“确定”按钮保存更改。
现在,当你双击桌面上的快捷方式时,脚本将自动执行。
请注意,这种方法假设你已经安装了Python解释器,并且将其路径添加到了系统的环境变量中。如果你的Python解释器路径与示例中的路径不同,请相应地修改快捷方式的目标字段。
希望这可以帮助到你!如果还有其他问题,请随时提问。