Python编写的读取html文件名,自动编写SQL插入语句脚本

      最近,在宝马出差,给用户编写测试数据,数据html编写完成后,还要按规则把其写成SQL插入语句,录入数据库,一次上百条数据,很是麻烦,写了个小脚本玩玩,也方便自己工作。

      我这本是在Python3.3下编写的,测试通过。后来为了加上窗体,又改用Python2.7  ,只要不加上窗体,在两者下都可以执行,测过的,很蛋疼吧,没办法,目前Python3.3还不支持图形化界面,也有可能是我个人没发掘到,大家要是了解的话,告知一下,感激不尽。

      好了,下面是我的代码,我也是刚学的可能会有不严谨的地方,程序还不是很完善,但是可以用的。

# !/usr/bin/env python
# coding=utf-8
import os

import  Tkinter
from tkMessageBox import *

这些是头文件,上边是字符编码问题,没有# coding=utf-8 貌似保存中文老弹出警告窗体,当然这是在2.7环境下,3.3没这个问题,但不管哪个加上就没问题;

下边是引入窗体文件的,对了Python图形化界面需要wXPython,下载时注意版本哦。

"""-------------------函数:处理中文乱码--------------"""
def chineseGarbled (str):

    if isinstance(str, unicode):  
        #ttt=u"中文"
        str = str.encode('gb2312')
       
    else:  
        #ttt="中文"
        str = str.decode('utf-8').encode('gb2312') 
    return str
"""------------------------------------------------"""
转换中文乱码的函数不解释直接拿去用就行,应该没有问题的,3.3没这么多事,用了2.7我才加上的。


"""-------------------函数:解析路径(当前仅解决‘/t’转义问题)--------------"""
def resolvePatch (path):
    mList = list(path)
    path = ""
    for a in mList :
       if a == '\t' :
           a = '\\t'
       if a == '\\' :
           a = a + '\\'
       path = path + a
    print(path)
    return path

"""----------------------------------------------------"""
解析你传入文件的路径,什么  \t,\s等等一大堆转义字符,要不然你的路径就会出错了,因为给自己用,写的不全,大家可以自己补补,这个函数也可以换,毕竟我这是随意写的。


"""-------------------函数:sql语句写入脚本--------------"""
def writeSql (FirstPath,SecondPath,WritePath):
    fList = os.listdir(FirstPath)
    for str in fList :
        path = SecondPath+'\\'+str
        htmlList = os.listdir(path)
        fileHandle = open(WritePath,'a')
        for s in htmlList :
            if (s[len(s)-5:]=='.html' or s[len(s)-5:]=='.HTML') :
                s = s[:-6]
                s2 = s[-21:-18]
                #nList = s.split('_0_')
                nList = s.split(s2)
                sql = "insert into ncmtest(name,card)  values('"+nList[0]+"','"+nList[1]+"');\n"
                fileHandle.write(sql)
            
        fileHandle.write('\n')
        fileHandle.close()

"""未完成,当前只应对双文件夹"""
def inputSql (path,WritePath):
    htmlList = os.listdir(path)
    fileHandle = open(WritePath,'a')
    for s in htmlList :
        if (s[len(s)-5:]=='.html' or s[len(s)-5:]=='.HTML') :
            s = s[:-6]
            nList = s.split('_0_')
            sql = "insert into ncmtest(name,card)  values('"+nList[0]+"','"+nList[1]+"');\n"
            fileHandle.write(sql)
            
    fileHandle.write('\n')
    fileHandle.close()
    



"""---------------------------------------------------"""

"""--------------函数:读取非文件夹的文件(当前文件格式限定为html,且文件夹中不能有除html外的其他文件)--------------"""
def getFile(str):

    return str

"""-------------------------------------------------------------------------------------------------------"""

这个没写全,当前支持上文件夹读取,例如D:\TestData\PBOC测试数据\卢云海_0_532526199001113830_.html 这种情况,嘿嘿,毕竟给自己用,所以没考虑那么多,大家可以自己加点。文件读取解析规则是按我自己用到的规则弄得,因人而异,自己修改吧


""" ----------------------------窗体----------------------- """

def input_click():
    FirstPath = e1.get()
    WritePath = e2.get()
    print(FirstPath)
    print(WritePath)
    FirstPath = resolvePatch(FirstPath)
    WritePath = resolvePatch(WritePath)
    SecondPath = FirstPath

    FirstPath = chineseGarbled (FirstPath)
    SecondPath = chineseGarbled (SecondPath)
    WritePath = chineseGarbled (WritePath)
    writeSql (FirstPath,SecondPath,WritePath)

    showinfo('温馨提示','操作完成,谢谢使用!')


def cancel_click():
    e1.delete(0, Tkinter.END)
    e2.delete(0, Tkinter.END)
    showinfo('温馨提示','重置成功,请继续操作!')
 

root=Tkinter.Tk()
lb_title1=Tkinter.Label(root,text='被扫描文件路径:',width=40,height=2)
lb_title1.pack()
e1 = Tkinter.Entry()
e1.pack(padx = 10, pady = 10, fill = Tkinter.X)

lb_title2=Tkinter.Label(root,text='写入文件路径:',width=40,height=2)
lb_title2.pack()
e2 = Tkinter.Entry()
e2.pack(padx = 10, pady = 10, fill = Tkinter.X)


btn_Login=Tkinter.Button(root,text='执行脚本',command=input_click)
btn_Login.pack()

btn_Cancel=Tkinter.Button(root,text='重    置',command=cancel_click)
btn_Cancel.pack()

root.mainloop()

"""---------------------------------------------------------"""

最后就是我们的窗体啦,我也是刚学的,写的不好请见谅哦。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值