python分割sql文件

以前用joomla帮一学校作了个网站,而后要部署到他们到服务器上,他们只提供了sftp和phpmyadmin的帐号,上传网站文件却是挺顺利的,但后来用phpmyadmin导入mysql数据就遇到问题了:因为他们设置的phpmyadmin最大只能导入2M的sql文件,若是太大会致使没法导入成功,可是个人sql文件有17M呀~~~~~~~~~php

 
没得办法,只能分割sql文件了,初学python,因而就当练习,用python写了个分割sql文件的脚本:
 
 #因为导出的sql文件总共95张表,每张表前都有这段字符 -- -------------------------------------,因而就以这段字符做为判断标准,将每10张表写入一个文件中,这样单个文件导入就能够啦!!
 
#如下是python代码
#!/usr/bin/python3.3
import re
 
def main():
    #先获得要分割的文件的起始和结束位置所在行数并放入列表x中
    count,total,j,l = 0, 0, 0, 0
    x = [0,]
    fin = open('cdu.sql','r')
    for line in fin:
        total += 1
        if re.search('-- -----*',line):                         #以此判断表的数量
            count += 1
            if count % 10 == 0:                                #每到10张表时将分割的行数写入x列表中
                #print(count,total)
                x.append(total)
 
    x.append(len(open('cdu.sql').readlines())+1)  #将最后一行也放入x中
    
    for i in x:
        print(i,end = ' ')
        
    print()
    
    cnt=1
    #读取x中的行数,起始和结束位置将文件内容复制到新文件中
    for i,j in enumerate(open('cdu.sql','r')):
        if i<=x[cnt]:
            with open('%dcdu.sql'%cnt,'a+') as f:                          
                f.write(j)
        else:
            cnt+=1
            print("wirte file"+str(cnt))
    print("ok")
if __name__=='__main__':main()
相关文章
相关标签/搜索