python处理insert语句

2018-08-21  本文已影响0人  caihhu

工作中遇到一个如下的情况,正好利用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')

上一篇下一篇

猜你喜欢

热点阅读