• 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()
  • 相关阅读:
    设计模式复习笔记08
    Docker Dockerfile 指令详解与实战案例
    Docker数据管理与挂载管理
    Docker简介与安装
    Xshell如何配置并远程连接Linux服务器详解
    如何VMware创建Linux虚拟机并设置虚拟机网络
    自动化运维工具Ansible之LNMP实践环境部署
    自动化运维工具Ansible之Roles角色详解
    自动化运维工具Ansible之Tests测验详解
    Ansible Jinja2 模板使用
  • 原文地址:https://www.cnblogs.com/brucee/p/3884613.html
Copyright © 2020-2023  润新知