python3执行.sql文件
2021/7/26 2:05:50
本文主要是介绍python3执行.sql文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
这个脚本主要是遍历执行文件夹下的sql文件,但是没有辨别文件的格式,所以文件夹下只能够放.sql文件,否则会报错哈。
我的sql文件夹与执行的文件平级,所以dir_path就是sql,大家依照自己的路径为准。
import pymysql import datetime import config as conf import os # 用于从某个文件夹中遍历执行.sql的文件 def sqldir_to_mysql(dir): db = pymysql.connect(host=conf.config.get('mysql', 'host'), user=conf.config.get( 'mysql', 'user'), passwd=conf.config.get('mysql', 'password'), db=conf.config.get('mysql', 'db_name'), charset='utf8') dblj = db.cursor() count = 0 ycts = 0 cgts = 0 str1 = '' start = datetime.datetime.now().strftime('%Y_%m_%d_%H:%M:%S.%f') for home, dirs, files in os.walk(dir): for filename in files: dirname = os.path.dirname(os.path.abspath(__file__)) fullname = os.path.join(dirname, dir, filename) fileObject = open(fullname); for line in fileObject: if not line.startswith("--") and not line.startswith('/*'): #处理注释 str1 = str1+line.strip() #pymysql一次只能执行一条sql语句 fileObject.close() #循环读取文件时关闭文件很重要,否则会引起bug for command in str1.split(';'): if command: try: dblj.execute(command+';') count = count + 1 cgts = cgts + 1 except db.DatabaseError as e: print(e) ycts = ycts + 1 pass end = datetime.datetime.now().strftime('%Y_%m_%d_%H:%M:%S.%f') print("成功"+str(cgts)+"条", "失败"+str(ycts)+"条") print('start: %s'%start) print('end: %s'%end) dblj.close() if __name__ == '__main__': dir_path = 'sql' sqldir_to_mysql(dir_path)
写了小半天,踩了很多坑才写出来的,与大家分享希望能帮到大家,如果有个赞鼓励一下就更棒了,
这篇关于python3执行.sql文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器