zoukankan      html  css  js  c++  java
  • python分割sql文件

    之前用joomla帮一学校做了个网站,然后要部署到他们到服务器上,他们只提供了sftp和phpmyadmin的账号,上传网站文件倒是挺顺利的,但后来用phpmyadmin导入mysql数据就遇到问题了:由于他们设置的phpmyadmin最大只能导入2M的sql文件,如果太大会导致无法导入成功,但是我的sql文件有17M呀~~~~~~~~~

     
    没得办法,只能分割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()
  • 相关阅读:
    k8spod资源的基础管理操作
    k8s名称空间资源
    bzoj5011: [Jx2017]颜色
    bzoj5010: [Fjoi2017]矩阵填数
    bzoj5008: 方师傅的房子
    bzoj5007: TCP协议
    bzoj5003: 与链 5004: 开锁魔法II 5005:乒乓游戏
    bzoj5020: [THUWC 2017]在美妙的数学王国中畅游
    bzoj5006: [THUWC2017 Bipartite]随机二分图
    bzoj4480: [Jsoi2013]快乐的jyy
  • 原文地址:https://www.cnblogs.com/brucee/p/3884613.html
Copyright © 2011-2022 走看看