美文网首页
python处理insert语句

python处理insert语句

作者: caihhu | 来源:发表于2018-08-21 17:35 被阅读0次

    工作中遇到一个如下的情况,正好利用python进行一下处理

    数据库导出的insert语句是一条一条的:

    insert into tableA values();

    insert into tableA values();

    insert into tableA values();

    现在要把这些语句合并成一条:

    insert into tableA values(),(),();

    这个一些数据库的插件也可以直接导出,也可以使用notepad++手工进行替换,但是要是处理的比较多的文件,则是个很大的体力活。

    可以利用python,把文件夹下面的sql进行替换

    
    import os
    
    ## freplace 替换函数
    
    def freplace(path):
    
        list = ['insert into tableA values','insert into tableB values'] ## 需要替换不同的string
    
        with open(path,'r') as f: ## 获取文件读的权限
    
            lines  = f.readlines() ## 获取文件行数
    
        with open(path,'w') as f_w:
    
            n = 0                ## 定义一下文件的行数初始值
    
            for line in lines:  ## 主要思想是 第一行的insert不需要替换,最后一行的;不需要替换,其它的替换
    
                if n == 0:
    
                    line = line.replace(";",",") ## 把 ;替换成 ,
    
                    n += 1
    
                elif n == len(lines)-1:
    
                    line = line.replace(list[0],"") ## 把list中的string进行替换
    
                    line = line.replace(list[1],"")
    
                    n += 1
    
                else:
    
                    line = line.replace(list[0],"")
    
                    line = line.replace(list[1],"")
    
                    line = line.replace(";",",")
    
                    n += 1
    
                f_w.write(line)
    
    ## replacefiles 用来遍历文件夹下的文件 然后进行替换
    
    def replacefiles(filespath):
    
        rootdir = filespath
    
        list = os.listdir(rootdir)
    
        for i in range(0,len(list)):
    
            path = os.path.join(rootdir,list[i])
    
            if os.path.isfile(path):
    
                freplace(path)
    
    if __name__ == "__main__":
    
        replacefiles('C:\Users\Desktop\test')
    
    

    相关文章

      网友评论

          本文标题:python处理insert语句

          本文链接:https://www.haomeiwen.com/subject/rwbjiftx.html