您的位置:首页 > 编程语言 > Python开发

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

2014-05-04 15:03 701 查看
      最近,在宝马出差,给用户编写测试数据,数据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()

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

最后就是我们的窗体啦,我也是刚学的,写的不好请见谅哦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python html sql 脚本 测试