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()
  • 相关阅读:
    LeetCode——Add Binary
    UVA
    mac平台adb、tcpdump捕手android移动网络数据包
    代码农民提高生产力
    Atitit. 拉开拉链zip文件 最佳实践实施 java c# .net php
    Arc Object开发,概述2
    ArcGIS Object开发,概述
    GDI 编程基础简介
    科目三考试档位与速度匹配总结、及考试操作技巧
    倾斜摄影
  • 原文地址:https://www.cnblogs.com/brucee/p/3884613.html
Copyright © 2011-2022 走看看