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()
  • 相关阅读:
    Vim的分屏功能
    vim简明教程
    trk压力测试工具(测试tcp)
    浅谈ThreadPool 线程池
    压力测试的概念
    wrk 网站压力测试
    windows下vim中文乱码处理
    java 新创建的类要重写的方法
    多线程代码示例
    System.out.print实现原理猜解
  • 原文地址:https://www.cnblogs.com/brucee/p/3884613.html
Copyright © 2011-2022 走看看