在日常的工作中,我们经常需要对文件和文件夹进行批量处理。无论是删除旧文件、重命名文件夹,还是替换文件内容,这些操作都可以通过编写 Python 脚本来简化和自动化。今天,我将分享一个用于管理文件和文件夹的 Python 脚本,它可以帮助你更高效地处理这些任务。
脚本功能概述
这个脚本具备以下功能:
- 删除指定文件夹和文件:包括系统文件夹和用户创建的文件。
- 重命名文件夹:将符合条件的文件夹重命名为指定名称。
- 替换文件内容:在指定的 XML 文件中替换文本。
- 重命名 ZIP 文件:将以特定后缀结尾的 ZIP 文件重命名为指定名称。
- 记录操作日志:记录所有操作的成功或失败信息,便于后续查看和分析。
脚本代码详解
以下是完整的脚本代码和功能说明:
import os
import shutil
from zipfile import ZipFile
import re
import tkinter as tk
from tkinter import messagebox
from datetime import datetime
def on_rm_error(func, path, exc_info):
"""
跳过 PermissionError 和 FileNotFoundError 错误,继续删除
"""
import stat
if not os.access(path, os.W_OK):
# 将文件设为可写,以便删除
os.chmod(path, stat.S_IWUSR)
# 重试删除
func(path)
def log_action(action, item_name, log_list):
"""
记录操作日志
"""
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
log_list.append(f"{
action}: {
item_name} at {
timestamp}")
def delete_folders_and_files():
"""
删除指定的文件夹和文件,并记录日志
"""
result = []
log_entries = []
folders = [
"LOST.DIR",
"Music",
"Podcasts",
"Ringtones",
"Alarms",
"Notifications",
"Pictures",
"Movies",
"Download",
"DCIM",
"Documents",
"Audiobooks",
"Android",
"logdata",
"all_images"
]
for folder in folders:
try:
shutil.rmtree