垃圾清理通常包括删除临时文件、缓存文件、日志文件等。以下是一个使用Python编写的简单垃圾清理脚本。此脚本将删除Windows系统中的一些常见临时文件和缓存文件。
注意:在执行此脚本之前,请确保备份所有重要数据。执行此脚本有可能会导致数据丢失。
import os
import shutil
import tempfile
def delete_temp_files(folder_path):
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
try:
os.remove(file_path)
print(f"已删除文件:{file_path}")
except Exception as e:
print(f"无法删除文件:{file_path}\n原因:{str(e)}")
def clean_temp_folder():
temp_folder = tempfile.gettempdir()
print(f"清理临时文件夹:{temp_folder}")
delete_temp_files(temp_folder)
def clean_cache_folder():
cache_folder = os.path.join(os.getenv("LOCALAPPDATA"), "Temp")
print(f"清理缓存文件夹:{cache_folder}")
delete_temp_files(cache_folder)
def clean_prefetch_folder():
prefetch_folder = os.path.join(os.getenv("SystemRoot"), "Prefetch")
print(f"清理预取文件夹:{prefetch_folder}")
delete_temp_files(prefetch_folder)
def clean_system_logs():
log_folder = os.path.join(os.getenv("SystemRoot"), "Logs")
print(f"清理系统日志文件夹:{log_folder}")
delete_temp_files(log_folder)
def main():
clean_temp_folder()
clean_cache_folder()
clean_prefetch_folder()
clean_system_logs()
print("垃圾清理完成!")
if __name__ == "__main__":
main()
使用步骤:
打开一个文本编辑器,将上面的代码粘贴到编辑器中,然后将文件保存为clean_system.py。
点击开始菜单,搜索“命令提示符”,右键选择“以管理员身份运行”。
在命令提示符中,转到保存clean_system.py文件的目录,例如:cd C:\Users\YourUsername\Desktop。
在命令提示符中输入python clean_system.py,然后按回车键执行脚本。
说明:
该脚本会删除临时文件夹、缓存文件夹、预取文件夹和系统日志文件夹中的所有文件。
当文件被成功删除时,脚本会打印文件路径,否则会显示错误原因。
请确保您以管理员身份运行命令提示符,以便脚本可以访问所有文件夹并执行清理操作。
如果你希望将脚本扩展到其他文件夹和类型的清理,你可以添加更多的功能。以下是一些可能有用的示例:
清理浏览器缓存:
def clean_browser_cache():
browser_cache_folders = {
"Chrome": os.path.join(os.getenv("LOCALAPPDATA"), "Google\\Chrome\\User Data\\Default\\Cache"),
"Firefox": os.path.join(os.getenv("APPDATA"), "Mozilla\\Firefox\\Profiles"),
"Edge": os.path.join(os.getenv("LOCALAPPDATA"), "Microsoft\\Edge\\User Data\\Default\\Cache")
}
for browser, folder in browser_cache_folders.items():
print(f"清理 {browser} 浏览器缓存:{folder}")
delete_temp_files(folder)
在main()函数中添加clean_browser_cache()函数调用。
清理回收站:
import ctypes
from ctypes import wintypes
def empty_recycle_bin():
SHEmptyRecycleBin = ctypes.windll.shell32.SHEmptyRecycleBinW
SHEmptyRecycleBin.argtypes = [wintypes.HWND, wintypes.LPCWSTR, wintypes.DWORD]
SHEmptyRecycleBin.restype = wintypes.HRESULT
result = SHEmptyRecycleBin(None, None, 0x00000001)
if result == 0:
print("成功清空回收站")
else:
print("清空回收站失败,错误代码:", result)
在main()函数中添加empty_recycle_bin()函数调用。
更新后的main()函数:
def main():
clean_temp_folder()
clean_cache_folder()
clean_prefetch_folder()
clean_system_logs()
clean_browser_cache()
empty_recycle_bin()
print("垃圾清理完成!")
现在,该脚本将删除临时文件夹、缓存文件夹、预取文件夹、系统日志文件夹、浏览器缓存文件夹中的所有文件,并清空回收站。请确保以管理员身份运行命令提示符,以便脚本可以访问所有文件夹并执行清理操作。
如果您希望增强此清理脚本,可以添加以下功能:
清理旧的系统还原点:
import subprocess
def clean_system_restore_points():
try:
print("清理旧的系统还原点...")
subprocess.run("vssadmin delete shadows /for=C: /all /quiet", shell=True, check=True)
print("成功清理旧的系统还原点")
except subprocess.CalledProcessError as e:
print("清理旧的系统还原点失败,错误代码:", e.returncode)
在main()函数中添加clean_system_restore_points()函数调用。
清理用户文件夹中的下载文件夹:
def clean_downloads_folder():
downloads_folder = os.path.join(os.getenv("USERPROFILE"), "Downloads")
print(f"清理下载文件夹:{downloads_folder}")
delete_temp_files(downloads_folder)
在main()函数中添加clean_downloads_folder()函数调用。
更新后的main()函数:
def main():
clean_temp_folder()
clean_cache_folder()
clean_prefetch_folder()
clean_system_logs()
clean_browser_cache()
empty_recycle_bin()
clean_system_restore_points()
clean_downloads_folder()
print("垃圾清理完成!")
此版本的脚本将执行以下操作:
删除临时文件夹、缓存文件夹、预取文件夹、系统日志文件夹、浏览器缓存文件夹中的所有文件。
清空回收站。
清理旧的系统还原点。
清理用户文件夹中的下载文件夹。
请确保以管理员身份运行命令提示符,以便脚本可以访问所有文件夹并执行清理操作。
注意:此脚本具有很强的清理功能,可能会导致数据丢失。在运行脚本之前,请确保备份所有重要数据。
以下是整合了所有功能的完整垃圾清理脚本。请确保在运行此脚本之前备份所有重要数据,因为运行此脚本可能会导致数据丢失。
import os
import shutil
import tempfile
import ctypes
from ctypes import wintypes
import subprocess
def delete_temp_files(folder_path):
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
try:
os.remove(file_path)
print(f"已删除文件:{file_path}")
except Exception as e:
print(f"无法删除文件:{file_path}\n原因:{str(e)}")
def clean_temp_folder():
temp_folder = tempfile.gettempdir()
print(f"清理临时文件夹:{temp_folder}")
delete_temp_files(temp_folder)
def clean_cache_folder():
cache_folder = os.path.join(os.getenv("LOCALAPPDATA"), "Temp")
print(f"清理缓存文件夹:{cache_folder}")
delete_temp_files(cache_folder)
def clean_prefetch_folder():
prefetch_folder = os.path.join(os.getenv("SystemRoot"), "Prefetch")
print(f"清理预取文件夹:{prefetch_folder}")
delete_temp_files(prefetch_folder)
def clean_system_logs():
log_folder = os.path.join(os.getenv("SystemRoot"), "Logs")
print(f"清理系统日志文件夹:{log_folder}")
delete_temp_files(log_folder)
def clean_browser_cache():
browser_cache_folders = {
"Chrome": os.path.join(os.getenv("LOCALAPPDATA"), "Google\\Chrome\\User Data\\Default\\Cache"),
"Firefox": os.path.join(os.getenv("APPDATA"), "Mozilla\\Firefox\\Profiles"),
"Edge": os.path.join(os.getenv("LOCALAPPDATA"), "Microsoft\\Edge\\User Data\\Default\\Cache")
}
for browser, folder in browser_cache_folders.items():
print(f"清理 {browser} 浏览器缓存:{folder}")
delete_temp_files(folder)
def empty_recycle_bin():
SHEmptyRecycleBin = ctypes.windll.shell32.SHEmptyRecycleBinW
SHEmptyRecycleBin.argtypes = [wintypes.HWND, wintypes.LPCWSTR, wintypes.DWORD]
SHEmptyRecycleBin.restype = wintypes.HRESULT
result = SHEmptyRecycleBin(None, None, 0x00000001)
if result == 0:
print("成功清空回收站")
else:
print("清空回收站失败,错误代码:", result)
def clean_system_restore_points():
try:
print("清理旧的系统还原点...")
subprocess.run("vssadmin delete shadows /for=C: /all /quiet", shell=True, check=True)
print("成功清理旧的系统还原点")
except subprocess.CalledProcessError as e:
print("清理旧的系统还原点失败,错误代码:", e.returncode)
def clean_downloads_folder():
downloads_folder = os.path.join(os.getenv("USERPROFILE"), "Downloads")
print(f"清理下载文件夹:{downloads_folder}")
delete_temp_files(downloads_folder)
def main():
clean_temp_folder()
clean_cache_folder()
clean_prefetch_folder()
clean_system_logs()
clean_browser_cache()
empty_recycle_bin()
clean_system_restore_points()
clean_downloads_folder()
print("垃圾清理完成!")
if __name__ == "__main__":
main()
这个脚本包含以下功能:
清理临时文件夹、缓存文件夹、预取文件夹和系统日志文件夹中的文件。
清理Chrome、Firefox和Edge浏览器的缓存。
清空回收站。
清理旧的系统还原点。
清理用户下载文件夹。
运行此脚本前,请确保备份所有重要数据,因为运行此脚本可能会导致数据丢失。请以管理员身份运行命令提示符,以便脚本可以访问所有文件夹并执行清理操作。