可以在Windows11系统上运行的自动编辑代码的小程序

使用Python编写的自动代码编辑程序示例,具备基础的文件处理、正则替换和备份功能。程序支持图形界面操作,可以在Windows 11上直接运行:

python

import os
import re
import shutil
import tkinter as tk
from tkinter import filedialog, messagebox

class CodeEditorApp:
    def __init__(self, master):
        self.master = master
        master.title("自动代码编辑器")
        master.geometry("600x400")

        # 创建界面组件
        self.create_widgets()

    def create_widgets(self):
        # 目录选择
        tk.Label(self.master, text="工作目录:").grid(row=0, column=0, padx=5, pady=5)
        self.dir_entry = tk.Entry(self.master, width=50)
        self.dir_entry.grid(row=0, column=1, padx=5, pady=5)
        tk.Button(self.master, text="浏览...", command=self.select_directory).grid(row=0, column=2)

        # 文件扩展名
        tk.Label(self.master, text="文件类型:").grid(row=1, column=0)
        self.ext_entry = tk.Entry(self.master, width=50)
        self.ext_entry.insert(0, "py, txt, java, cpp")  # 默认支持的文件类型
        self.ext_entry.grid(row=1, column=1)

        # 查找替换规则
        tk.Label(self.master, text="查找内容:").grid(row=2, column=0)
        self.find_entry = tk.Entry(self.master, width=50)
        self.find_entry.grid(row=2, column=1)

        tk.Label(self.master, text="替换为:").grid(row=3, column=0)
        self.replace_entry = tk.Entry(self.master, width=50)
        self.replace_entry.grid(row=3, column=1)

        # 正则表达式选项
        self.regex_var = tk.BooleanVar()
        tk.Checkbutton(self.master, text="使用正则表达式", variable=self.regex_var).grid(row=4, column=1, sticky=tk.W)

        # 操作按钮
        tk.Button(self.master, text="执行替换", command=self.run_processing, bg="#4CAF50", fg="white").grid(row=5, column=1, pady=10)
        
        # 日志显示
        self.log_text = tk.Text(self.master, height=10, width=70)
        self.log_text.grid(row=6, column=0, columnspan=3, padx=5, pady=5)

    def select_directory(self):
        directory = filedialog.askdirectory()
        if directory:
            self.dir_entry.delete(0, tk.END)
            self.dir_entry.insert(0, directory)

    def log_message(self, message):
        self.log_text.insert(tk.END, message + "\n")
        self.log_text.see(tk.END)

    def backup_files(self, file_path):
        """创建文件备份"""
        backup_dir = os.path.join(self.dir_entry.get(), "backup")
        os.makedirs(backup_dir, exist_ok=True)
        shutil.copy2(file_path, backup_dir)
        self.log_message(f"创建备份: {os.path.basename(file_path)}")

    def process_file(self, file_path):
        """处理单个文件"""
        try:
            with open(file_path, "r", encoding="utf-8") as f:
                content = f.read()

            original_content = content
            find_pattern = self.find_entry.get()
            replace_with = self.replace_entry.get()

            if self.regex_var.get():
                content = re.sub(find_pattern, replace_with, content)
            else:
                content = content.replace(find_pattern, replace_with)

            if content != original_content:
                self.backup_files(file_path)
                with open(file_path, "w", encoding="utf-8") as f:
                    f.write(content)
                self.log_message(f"已修改: {os.path.basename(file_path)}")

        except Exception as e:
            self.log_message(f"错误处理 {file_path}: {str(e)}")

    def run_processing(self):
        """执行批处理"""
        if not self.dir_entry.get():
            messagebox.showerror("错误", "请先选择工作目录")
            return

        extensions = [ext.strip() for ext in self.ext_entry.get().split(",")]
        file_count = 0

        for root, _, files in os.walk(self.dir_entry.get()):
            for file in files:
                if any(file.endswith(ext) for ext in extensions):
                    file_path = os.path.join(root, file)
                    self.process_file(file_path)
                    file_count += 1

        self.log_message(f"处理完成!共扫描 {file_count} 个文件")
        messagebox.showinfo("完成", "文件处理完成!")

if __name__ == "__main__":
    root = tk.Tk()
    app = CodeEditorApp(root)
    root.mainloop()

使用说明:

  1. 将代码保存为 auto_code_editor.py

  2. 安装依赖:

    bash

    复制

    pip install pyinstaller
  3. 打包为exe:

    bash

    复制

    pyinstaller --onefile --windowed auto_code_editor.py
  4. 生成的exe文件在 dist 目录中

主要功能:

  1. 选择工作目录

  2. 指定要处理的文件扩展名(多个用逗号分隔)

  3. 支持普通文本替换和正则表达式替换

  4. 自动创建备份文件(保存在工作目录/backup)

  5. 实时显示操作日志

  6. 图形界面操作

注意事项:

  1. 首次运行前建议在测试目录试用

  2. 重要文件请提前备份

  3. 使用正则表达式时请确保模式正确

  4. 支持大多数文本格式文件(代码文件、配置文件等)

高级功能扩展建议:

  1. 添加撤销功能(从备份恢复)

  2. 支持多组查找替换规则

  3. 添加文件编码自动检测

  4. 支持保存/加载配置方案

  5. 添加文件过滤(按大小、日期等)

  6. 集成代码格式化功能(如black、prettier)

这个程序可以处理常见的代码编辑需求,如:

  • 批量重命名变量/函数

  • 更新版权信息

  • 修改API地址

  • 调整代码格式

  • 修复常见代码警告等

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值