首页 > 代码库 > 删除凭证表科目中的上级科目的python脚本

删除凭证表科目中的上级科目的python脚本

上个礼拜,遇到一个坑爹的事情,就是经理要我把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 "遍历完毕!"

 

删除凭证表科目中的上级科目的python脚本