美文网首页
图形格式化SQL

图形格式化SQL

作者: 平凡的运维之路 | 来源:发表于2023-04-10 16:47 被阅读0次

    图形格式化SQL

    使用tkinter图形化窗口

    • 由于工作中经常需要把大量数据转换sql进行导入,由于数据量大一条一条导入,耗时慢,为了加快导入时间,特意编写该图形格式化SQL小工具

    详细代码

    • 代码详情
    from tkinter import *
    from tkinter import messagebox
    from tkinter import Menu
    import time,os
    #主窗口
    root=Tk()
    root.title("批量TXT格式SQL文件")
    root.geometry("600x450")
    root.resizable(False, False)
    frame1=Frame(root)
    frame2=Frame(root)
    frame3=Frame(root)
    frame1.pack()
    #构建
    lab=Label(frame1,text="输入你需要格式化的文件完整路径:",font=("楷体",14),fg="teal").pack()
    txt=StringVar()
    entry=Entry(frame1,textvariable=txt,font=("楷体",14)).pack()
    
    lab=Label(frame1,text="输入格式化SQL字段:表名与字段名之间用||分割",font=("楷体",14),fg="teal").pack()
    sqltxt=StringVar()
    entry=Entry(frame1,textvariable=sqltxt,font=("楷体",14)).pack()
    
    lab=Label(frame1,text="点击生成SQL --> 确定 --> 菜单工具 --> 保存",font=("楷体",14),fg="teal").pack()
    
    lab=Label(frame1,text="注意:导入文件使用逗号分割,编写路径和字段时注意换行符",font=("楷体",14),fg="teal").pack()
    
    
    
    #输出文本按钮函数
    def func1():
        global data,path,sql_ziduan
        path=txt.get()
        # path = "c:\\Users\\WIN10\\Desktop\\1.txt"
        sql_ziduan=sqltxt.get()
        # sql_ziduan = "mysqltablename||source,session_id,local_url,remote_url,call_time,call_result"
        print(path, "=====>",sql_ziduan)
        # with open(path,"r",encoding="utf-8") as fo:
        #       data=fo.read()
        # print(data)
        # data=str(data)
        # text3.insert(INSERT,data)
        messagebox.showinfo(title="输出成功",message="确定")
        time.sleep(1)
        frame1.pack_forget()
        frame2.pack()
    button=Button(frame1,text="生成SQL",font=("楷体",14),fg="teal",command=func1).pack()
    #菜单
    #刷新函数
    def fun1():
        text3.delete(0.0,END)
    num=1
    def fun2():
        global num
        tablename = sql_ziduan.split("||")[0]
        field = sql_ziduan.split("||")[1]
        fomat_SQL = "insert into "+ tablename + "(" + field + ") values "
        sql_parameter_list = []
        num+=1
        new_file_path = os.path.dirname(os.path.realpath(path))
        st=new_file_path  + "\\"+"Insert.sql"
        fp=open(st,"w",encoding="utf-8")
        print("<====>")
        with open(path,"r",encoding="utf-8") as fo:
            data=fo.readlines()
            for line in data:
                txt = line.strip().replace('"','')
                txt_list =  txt.split(",")
                parameter = tuple(txt_list)
                sql_parameter_list.append(parameter)
                if len(sql_parameter_list) == 2000:
                    values_sql = str(sql_parameter_list).replace("[", "").replace("]", "")
                    Newsql = fomat_SQL + values_sql + ";"
                    # print(Newsql)
                    fp.writelines(Newsql + "\n")
                    sql_parameter_list = []
                    sql_parameter_list.append(parameter)
        values_sql = str(sql_parameter_list).replace("[", "").replace("]", "")
        # print(values_sql,"=========>")
        Newsql = fomat_SQL + values_sql + ";"
        # print(Newsql)
        fp.writelines(Newsql + "\n")
        fp.close()
        st2="已保存在"+st+"文件"
        messagebox.showinfo(title="保存成功",message=st2)
    
    menubar = Menu(root)
    file = Menu(menubar, tearoff=0)
    file.add_command(label='刷新', command=fun1)
    file.add_command(label='保存', command=fun2)
    menubar.add_cascade(label='菜单工具', menu=file)
    root.config(menu=menubar)
    
    #窗口2
    # text3=Text(frame2,height = 0,width = 0,font=("楷体",14),fg="black")
    # text3.pack()
    def func2():
        frame2.pack_forget()
        frame1.pack()
    button=Button(frame2,text="返回",font=("楷体",14),fg="teal",command=func2).pack()
    
    root.mainloop()
    
    

    运行注意事项

    • 填写txt文件路径时注意换行符
    • 填写表名与字段使用||进行分割

    具体操作

    • 下载

      • http://10.130.36.117/Deploymentpackage/txt转换sql.exe
        
    image.png
    • 首先填写 完整txt文件路径

    • 填写表名与字段


      image.png
    • 点击生成SQL --> 确定 --> 菜单工具 --> 保存


      image.png
    image.png image.png
    • 在txt文件路径同级目录下有Insert.sql文件

    相关文章

      网友评论

          本文标题:图形格式化SQL

          本文链接:https://www.haomeiwen.com/subject/otlwddtx.html