• 删除凭证表科目中的上级科目的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 = "____"        #一级科目通配符
    del_list = []  
    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]
            if sjkm not in del_list:        #过滤重复的上级科目
                del_list.append(sjkm)        
            
    
    for del_km in del_list:
        sql_del = "delete from hc14 where kmdm = ""+del_km+"""    #组合删除sql
        query02 = conn(sql_del).exe()
        print sql_del    #打印删除sql
    
    print "遍历完毕!"
  • 相关阅读:
    Sublime Text3快捷键大全
    IntelliJ IDEA常用快捷键(Mac)
    shell脚本执行错误 $' ':command not found
    Shell脚本中"command not found"报错处理
    Shell 数值、字符串比较
    Java线程池的构造以及使用
    Host 'xxx' is not allowed to connect to this MySQL server
    Linux下Mysql安装(tar安装)
    Linux下Mysql安装(RPM安装)
    Mac安装Mysql
  • 原文地址:https://www.cnblogs.com/Jace06/p/6785906.html
Copyright © 2020-2023  润新知