美文网首页
图形格式化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