代码思路:
- 依次从mysql数据库中导出数据表,保存在本地
- 将本地的数据表合并在一个excel中,使用sheet区分不同表
首先运行这份代码,得到导出数据表的代码对应的字符串
ip = "127.0.0.1" # 数据库地址
username = "用户名"
password = "密码"
database = '数据库名'
tabels = ['数据表 1',
'数据表 2',] # 在mysqlworkbench中使用 show tables; 直接导出数据库的全部表
if __name__ == '__main__':
for tabel_name in tabels:
string = 'mysql -h' + ip + ' -u' + username + ' -p' + password + ' -e "select * from ' + tabel_name + '" ' + database + ' > db_data/' + tabel_name + '.csv'
# exce 会报错
print(string)
将得到的字符串直接复制在命令行中,运行即可,运行完成后执行下面的代码:
import os
import pandas as pd
# 读取path目录下的全部文件
def readfile(path):
files = os.listdir(path)
file_list = []
for file in files: # 遍历文件夹
if not os.path.isdir(file):
file_list.append(path + '/' + file)
return file_list
if __name__ == '__main__':
writer = pd.ExcelWriter(r'db_data.xlsx')
for csv_file in readfile('db_data'):
try:
file_name = csv_file.split('/')[-1].split('.')[0]
csv_pd = pd.read_csv(csv_file, sep='\t', lineterminator='\n')
csv_pd.to_excel(writer, sheet_name=file_name)
except Exception as e:
print("ERROR : " + csv_file)
writer.save()
writer.close()