csv文件查找工具(一)

在这里插入图片描述
自己写的小工具,查询csv文件前三列的数据互查,
主要目的是 组sql 需要这三个数据互查,
当然从数据库查的更快,
但数据库的连接需要验证权限,能自己搞,先自己搞
速度待优化,没时间搞了,两个同时运行。
使用的时候自己替换一下 2024年****.csv文件

写完检查,发现可以直接用excel筛选,excel查找找不到,得用excel筛选,糙。
在这里插入图片描述

import tkinter as tk
from tkinter import ttk, scrolledtext
import pandas as pd

class CSVQueryApp:
    def __init__(self, root):
        self.root = root
        self.root.title("CSV查询工具")
        self.root.grid_propagate(False)  # 禁用grid的自适应大小

        # 设置窗口初始大小和位置
        initial_width = 800
        initial_height = 600
        screen_width = root.winfo_screenwidth()
        screen_height = root.winfo_screenheight()
        x_position = (screen_width - initial_width) // 2
        y_position = (screen_height - initial_height) // 2
        self.root.geometry(f"{
     initial_width}x{
     initial_height}+{
     x_position}+{
     y_position}")

        # 输入框
        self.entry_label = ttk.Label(root, text="输入查询数据:")
        self.entry_label.grid(row=0, column=0, padx=10, pady=10)
        self.entry_var = tk.StringVar()
        self.entry = ttk.Entry(root, textvariable=self.entry_var)
        self.entry.grid(row=0, column=1, padx=10, pady=10)

        # 查询按钮
        self.query_button = ttk.Button(root, text="查询", command=self.query_csv)
        self.query_button.grid(row=0, column=2, padx=10, pady=10)

        # 结果显示框
        self.result_text = scrolledtext.ScrolledText(root, wrap=tk.WORD)
        self.result_text.grid(row=1, column=0, columnspan=3, padx=10, pady=10, sticky="nsew")  # 使用sticky使其铺满空间

        # 配置窗口大小调整事件
        root.bind("<Configure>", self.on_window_resize)

        # 设置网格的调整权重
        root.columnconfigure(0, weight=1)
        root.columnconfigure(1, weight=1)
        root.columnconfigure(2, weight=1)
        root.rowconfigure(1, weight=1)

    def query_csv(self):
        # 从CSV文件中查询数据
        query_data = self.entry_var.get()
        if query_data:
            try:
                csv_data = pd.read_csv("2024年****.csv")  # 替换为你的CSV文件路径
                result = csv_data[csv_data.apply(lambda row: query_data in str(row), axis=1)]
                self.display_result(result.iloc[:, :3])  # 仅保留前三列数据
            except Exception as e:
                self.display_result(f"错误: {
     str(e)}")
        else:
            self.display_result("请输入查询数据")

    def display_result(self, result):
        self.result_text.delete(1.0, tk.END)  # 清空之前的结果
        if isinstance(result, pd.DataFrame):
            self.result_text.insert(tk.END, result.to_string(index=False))
        else:
            self.result_text.insert(tk.END, str(result))

    def on_window_resize(self, event):
        # 窗口大小调整事件处理
        new_width = event.width - 20  # 调整为合适的宽度,可以根据需要调整
        new_height = event.height - 100  # 调整为合适的高度,可以根据需要调整
        self.result_text.config(width=new_width, height=new_height)

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

相关推荐

  1. Everything:文件查找工具搜即得

    2024-01-12 12:12:04       39 阅读
  2. Linux中find文件查找工具应用

    2024-01-12 12:12:04       60 阅读
  3. 查找某些后缀的文件

    2024-01-12 12:12:04       48 阅读
  4. PHP端口批量查询工具文件

    2024-01-12 12:12:04       45 阅读
  5. Linux 中根据关键字查找文件

    2024-01-12 12:12:04       33 阅读
  6. 次大量CSV数据文件同步到数据库

    2024-01-12 12:12:04       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-12 12:12:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-12 12:12:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-12 12:12:04       82 阅读
  4. Python语言-面向对象

    2024-01-12 12:12:04       91 阅读

热门阅读

  1. 常见设计模式--通俗易懂版

    2024-01-12 12:12:04       38 阅读
  2. 计算机网络——多路复用技术

    2024-01-12 12:12:04       47 阅读
  3. 编程笔记 html5&css&js 031 HTML视频

    2024-01-12 12:12:04       49 阅读
  4. 回归和拟合的关系

    2024-01-12 12:12:04       58 阅读
  5. 修复zookeeper未授权访问漏洞

    2024-01-12 12:12:04       63 阅读