标签:mysqldb cut commit 方便 目的 python脚本 删掉 保留 __init__
上个礼拜,遇到一个坑爹的事情,就是经理要我把excel格式的凭证表(财务账套中的一个表)里除最末级科目的科目全删掉,这让并不精通office的我很头疼,因为单是一年的凭证有十几万条记录(手动的话从早删到晚都删不完啊)。后来我就想能不能,把excel导进mysql里,然后通过python处理呢?因为python操作mysql非常方便的事,最后经过一番构思写了个小程序来完成这件事了。
#coding=utf8 import MySQLdb #删除凭证表中科目的上级科目,只保留科目的最末节科目 class conn: #定义用于执行sql的类 connect = MySQLdb.connect("192.168.30.235","shiyan","123456","hongcheng") result = "" sql = "" def __init__(self,sql): self.sql = sql def exe(self): cur = self.connect.cursor() cur.execute(self.sql) self.result = cur.fetchall() self.connect.commit() #self.connect.close() return self.result def __del__(self): pass n = 4 leve01 = "____" #一级科目通配符 while n != 0: #循环遍历除一级科目的科目,从最末节科目开始往上级科目循环 leve01 = leve01 + n*"___" n = n-1 make_sql = "select * from code_14 where kmdm like \""+leve01+"\"" #加载满足条件的科目 query01 = conn(make_sql) leve01 = "____" result1 = query01.exe() for list01 in result1: #循环遍历删除当前科目的上级科目 sjkm = list01[0][0:len(list01)-4] sql_del = "delete from hc14 where kmdm = \""+sjkm+"\"" #组合删除sql query02 = conn(sql_del).exe() print sql_del #打印删除sql print "遍历完毕!"
标签:mysqldb cut commit 方便 目的 python脚本 删掉 保留 __init__
原文地址:http://www.cnblogs.com/Jace06/p/6785906.html