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

 更新时间:2025年12月19日 08:47:37   作者:小庄-Python办公  
在日常开发或数据处理工作中,我们经常会遇到需要给一堆列表数据添加引号、逗号的情况,今天我们就用 Python 自带的 tkinter 库,写一个轻量级的桌面小工具,实现一键批量添加前后缀并复制到剪贴板

在日常开发或数据处理工作中,我们经常会遇到需要给一堆列表数据添加引号、逗号的情况。比如把 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批量添加字符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python使用requests.post方法传递form-data类型的Excel数据的示例代码

    python使用requests.post方法传递form-data类型的Excel数据的示例代码

    这篇文章介绍了python使用requests.post方法传递form-data类型的Excel数据的示例代码,某些post接口,需要发送multipart/form-data类型的数据,如何使用python requests来模拟这种类型的请求发送呢?补充讲解了python使用requests post请求发送form-data类型数据,一起看看吧
    2024-01-01
  • Python Flask框架扩展操作示例

    Python Flask框架扩展操作示例

    这篇文章主要介绍了Python Flask框架扩展操作,结合实例形式分析了Python Flask-Script扩展命令行操作实现方法,需要的朋友可以参考下
    2019-05-05
  • pyhanlp安装介绍和简单应用

    pyhanlp安装介绍和简单应用

    这篇文章主要介绍了pyhanlp安装介绍和简单应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02
  • Python使用sftp实现上传和下载功能

    Python使用sftp实现上传和下载功能

    这篇文章主要为大家详细介绍了Python使用sftp实现上传和下载功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • python通过urllib2获取带有中文参数url内容的方法

    python通过urllib2获取带有中文参数url内容的方法

    这篇文章主要介绍了python通过urllib2获取带有中文参数url内容的方法,涉及Python中文编码的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • Python中实现文本预处理的方法小结

    Python中实现文本预处理的方法小结

    文本数据是数据科学和自然语言处理领域的关键组成部分,本文将深入探讨Python中文本预处理的关键步骤,并提供丰富的示例代码,希望对大家有所帮助
    2023-12-12
  • Python实现电脑唤醒后自动拍照截屏并发邮件通知

    Python实现电脑唤醒后自动拍照截屏并发邮件通知

    这篇文章主要为大家详细介绍了Python如何实现电脑唤醒后自动拍照截屏并发邮件通知的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-01-01
  • OpenCV 使用imread()函数读取图片的六种正确姿势

    OpenCV 使用imread()函数读取图片的六种正确姿势

    这篇文章主要介绍了OpenCV 使用imread()函数读取图片的六种正确姿势,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Python  Flask框架操作数据库的方法

    Python  Flask框架操作数据库的方法

    Flask中最方便用的数据库框架是flask_sqlalchamy,是对 SQLAlchamy 在 Flask 中的扩展,它主要在于简化Flask 中 sqlalchamy的使用,本篇文章给大家介绍Python  Flask的数据库操作使用方法,感兴趣的朋友一起看看吧
    2024-02-02
  • Python3.5面向对象与继承图文实例详解

    Python3.5面向对象与继承图文实例详解

    这篇文章主要介绍了Python3.5面向对象与继承,结合图文与实例形式详细分析了Python3.5面向对象与继承的相关概念、原理、实现方法及操作注意事项,需要的朋友可以参考下
    2019-04-04

最新评论