当前位置: 代码网 > it编程>前端脚本>Python > Python+Tkinter编写一个批量字符添加工具

Python+Tkinter编写一个批量字符添加工具

2025年12月19日 Python 我要评论
在日常开发或数据处理工作中,我们经常会遇到需要给一堆列表数据添加引号、逗号的情况。比如把 excel 里的 id 列表转换成 sql 的 in 查询条件,或者转成 json 数组格式。手动一行行修改非

在日常开发或数据处理工作中,我们经常会遇到需要给一堆列表数据添加引号、逗号的情况。比如把 excel 里的 id 列表转换成 sql 的 in 查询条件,或者转成 json 数组格式。

手动一行行修改非常繁琐,今天我们就用 python 自带的 tkinter 库,写一个轻量级的桌面小工具,实现一键批量添加前后缀并复制到剪贴板

需求分析

我们需要一个简单的界面,包含以下功能:

  • 输入区域:可以粘贴多行文本。
  • 配置区域:可以指定每行开头添加什么(比如 "),结尾添加什么(比如 ",)。
  • 操作按钮:点击后自动处理文本,并将结果复制到剪贴板。

结果演示

假设我们输入:

华东重客海外仓2
华东重客冷运1
华东重客冷运2

设置左侧为 ",右侧为 ",,点击处理后得到:

"华东重客海外仓2",
"华东重客冷运1",
"华东重客冷运2",

工具界面图

代码实现

我们不需要安装任何第三方库,直接使用 python 标准库中的 tkinter

1. 界面布局

使用 tk.frame 将界面分为上、中、下三部分:

  • 顶部:输入框,用于设置左侧和右侧的符号。
  • 中部:大文本框(text 组件),用于粘贴和显示数据。
  • 底部:操作按钮和状态栏。

2. 核心逻辑

获取文本框内容后,按行分割,遍历每一行进行字符串拼接,最后再合并回字符串。

3. 完整代码 (text_wrapper.py)

import tkinter as tk
from tkinter import messagebox

class textwrapperapp:
    def __init__(self, root):
        self.root = root
        self.root.title("字符批量添加工具")
        self.root.geometry("600x500")

        # === 顶部配置区域 ===
        config_frame = tk.frame(root, pady=10)
        config_frame.pack(fill=tk.x, padx=10)

        # 左侧符号配置
        tk.label(config_frame, text="左侧添加:").pack(side=tk.left, padx=5)
        self.prefix_entry = tk.entry(config_frame, width=15)
        self.prefix_entry.pack(side=tk.left, padx=5)
        self.prefix_entry.insert(0, '"') # 默认值

        # 右侧符号配置
        tk.label(config_frame, text="右侧添加:").pack(side=tk.left, padx=5)
        self.suffix_entry = tk.entry(config_frame, width=15)
        self.suffix_entry.pack(side=tk.left, padx=5)
        self.suffix_entry.insert(0, '",') # 默认值

        # === 中间文本区域 ===
        text_frame = tk.frame(root, padx=10, pady=5)
        text_frame.pack(fill=tk.both, expand=true)
        
        tk.label(text_frame, text="请在下方粘贴文本:").pack(anchor=tk.w)

        # 滚动条和文本框
        scrollbar = tk.scrollbar(text_frame)
        scrollbar.pack(side=tk.right, fill=tk.y)
        
        self.text_area = tk.text(text_frame, wrap=tk.none, height=15, yscrollcommand=scrollbar.set)
        self.text_area.pack(side=tk.left, fill=tk.both, expand=true)
        
        scrollbar.config(command=self.text_area.yview)

        # === 底部按钮区域 ===
        btn_frame = tk.frame(root, pady=10)
        btn_frame.pack(fill=tk.x, padx=10)

        # 处理并复制按钮
        process_btn = tk.button(
            btn_frame, 
            text="处理并复制结果", 
            command=self.process_and_copy, 
            bg="#0078d7", 
            fg="white", 
            font=("microsoft yahei", 10, "bold"),
            padx=10,
            pady=5
        )
        process_btn.pack(side=tk.left, padx=5)
        
        # 清空按钮
        clear_btn = tk.button(
            btn_frame, 
            text="清空内容", 
            command=self.clear_text,
            padx=10,
            pady=5
        )
        clear_btn.pack(side=tk.left, padx=5)

        # 状态栏
        self.status_label = tk.label(root, text="准备就绪", bd=1, relief=tk.sunken, anchor=tk.w)
        self.status_label.pack(side=tk.bottom, fill=tk.x)

    def process_and_copy(self):
        # 获取前后缀
        prefix = self.prefix_entry.get()
        suffix = self.suffix_entry.get()
        
        # 获取文本框内容
        content = self.text_area.get("1.0", tk.end)
        
        if not content.strip():
            messagebox.showwarning("提示", "文本框为空,请输入内容!")
            return

        lines = content.split('\n')
        processed_lines = []
        count = 0
        
        for line in lines:
            stripped_line = line.strip()
            
            if stripped_line:
                processed_lines.append(f"{prefix}{stripped_line}{suffix}")
                count += 1

        if count == 0:
            messagebox.showinfo("提示", "没有检测到有效文本行。")
            return

        result_text = "\n".join(processed_lines)
        
        # 更新文本框显示结果
        self.text_area.delete("1.0", tk.end)
        self.text_area.insert("1.0", result_text)
        
        # 复制到剪贴板
        self.root.clipboard_clear()
        self.root.clipboard_append(result_text)
        self.root.update() 
        
        self.status_label.config(text=f"成功处理 {count} 行,并已复制到剪贴板!")
        messagebox.showinfo("成功", f"已完成!\n共处理 {count} 行数据。\n结果已复制到剪贴板。")

    def clear_text(self):
        self.text_area.delete("1.0", tk.end)
        self.status_label.config(text="内容已清空")

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

如何使用

  • 将上面的代码保存为 text_wrapper.py
  • 确保电脑上安装了 python。
  • 在命令行运行 python text_wrapper.py,或者创建一个 .bat 批处理文件双击运行。

这样,一个小巧实用的办公辅助工具就完成啦!希望这个小脚本能帮你节省一些重复劳动的时间。

到此这篇关于python+tkinter编写一个批量字符添加工具的文章就介绍到这了,更多相关python批量添加字符内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com