首页 > 代码库 > python分割sql文件
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()
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。