coding = utf-8
import pymysql
import os
def clean_database(dbname):
db = pymysql.connect('127.0.0.1', 'root', '123456', '{}'.format(dbname), 3306, )
sqlfile = os.listdir(test)
cursor = db.cursor()
# UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 3582: invalid continuation byte
# 报错是因为sql文件的编码格式不是utf-8
for sqltxt in sqlfile:
print(sqltxt)
with open('{}'.format(test)+sqltxt, 'r', encoding='utf-8') as sqlscript:
sql_list = sqlscript.read().split(';')[:-1] # 以;分隔sql语句,一直取到最后一位
new_sql_list = [x.replace('\n', ' ') if '\n' in x else x for x in sql_list] # 将每段sql里的换行符改成空格
for sql_item in new_sql_list:
cursor.execute(sql_item)
cursor.close()
db.commit()
db.close()
# print('数据库已初始化')
if name == ‘main’:
test = ‘C:/Users/lhd/Desktop/test/’
clean_database(‘test’)