广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python执行sql文件
  • 297
分享到

python执行sql文件

文件pythonsql 2023-01-31 04:01:20 297人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

最近遇到一对需要执行的sql文件,sql文件内是insert 语句。如下: INSERT INTO hs_his.stock_industry VALUES ('采掘', '000006', '深振业A'); INSERT INT

最近遇到一对需要执行的sql文件,sql文件内是insert 语句。如下:

INSERT INTO hs_his.stock_industry VALUES ('采掘', '000006', '深振业A');
INSERT INTO hs_his.stock_industry VALUES ('采掘', '000409', '山东地矿');
INSERT INTO hs_his.stock_industry VALUES ('采掘', '000552', '靖远煤电');
INSERT INTO hs_his.stock_industry VALUES ('采掘', '000571', '新大洲A');
INSERT INTO hs_his.stock_industry VALUES ('采掘', '000629', '*ST钒钛');
INSERT INTO hs_his.stock_industry VALUES ('采掘', '000655', '金岭矿业');

本来需要插入的表并不多,仅七八张,手动执行下也很快。但是实施人员给过来的sql文件,一张表的数据根据数据量硬生生生成了近10个文件。文件多了,若手动执行,很容易出现遗漏或者重复操作,造成错误。
由于文件内结构比较单一,故用脚本实现。代码如下:


def execute_sql(conn, cur, path=r"D:\个人"):
    """执行指定目录下的.sql文件"""
    os.chdir(path)
    for each in os.listdir("."):
        count = 0   #读取行数
        sql = ""    #拼接的sql语句
        if "hisdatastock_replace.sql" in each:
            with open(each, "r", encoding="utf-8") as f:
                for each_line in f.readlines():
                    # 过滤数据
                    if not each_line or each_line == "\n":
                        continue
                    # 读取2000行数据,拼接成sql
                    elif count < 2000:
                        sql += each_line
                        count += 1
                    # 读取达到2000行数据,进行提交,同时,初始化sql,count值
                    else:
                        cur.execute(sql)
                        conn.commit()
                        sql = each_line
                        count = 1
                # 当读取完毕文件,不到2000行时,也需对拼接的sql 执行、提交
                if sql:
                    cur.execute(sql)
                    conn.commit()

以上execute_sql函数,会默认执行入参path路径下,所有文件名包含“.sql”文件。
如下,写一个连接配置数据的类。

class Connect_Mysql:
    """Get Configuration and Connect to mysql!"""
    def __init__(self):
        setup_logging()
    def get_config(self,file_name="config"):
        """Get Configuration!"""
        with open(file_name, "r", encoding="utf-8") as f:
            config = JSON.load(f)
        return config

    def conn_mysql(self, host, port, user, passWord, database, charset="utf8"):
        """Connetct to Mysql."""
        logger = logging.getLogger(self.__class__.__name__)
        try:
            conn = pymysql.connect(host=host, port=port, user=user, password=password,  database=database, charset=charset)
            cur = conn.cursor()
            return conn, cur
        except Exception as e:
            logger.info('Connect to mysql Error!')
            logger.error(e)

get_config函数是获取数据库配置。文件”config“数据库配置如下:

{
    "dev":{
        "host":"aaa",
        "port":3306,
        "user":"aaa",
        "password":"aaa",
        "database":"aaa",
        "charset":"utf8"
        },
    "localhost":{
        "host":"localhost",
        "port":3306,
        "user":"root",
        "password":"123456",
        "database":"ifs_test1",
        "charset":"utf8"
        },
    "sit":{
        "host":"ccc",
        "port":3306,
        "user":"ccc",
        "password":"ccc",
        "database":"ccc",
        "charset":"utf8"
        }
}

运行代码:

conn_sql = Connect_mysql()
config = conn_sql.get_config()  # get configuration
# Connect to mysql,若需切换数据库,只要替换“dev”为所需数据库即可
conn, cur = conn_sql.conn_mysql(config["dev"]["host"], config["dev"]["port"], config["dev"]["user"],
                                config["dev"]["password"], config["dev"]["database"], config["dev"]["charset"])

--结束END--

本文标题: python执行sql文件

本文链接: https://www.lsjlt.com/news/187984.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python执行sql文件
    最近遇到一对需要执行的sql文件,sql文件内是insert 语句。如下: INSERT INTO hs_his.stock_industry VALUES ('采掘', '000006', '深振业A'); INSERT INT...
    99+
    2023-01-31
    文件 python sql
  • python 批量执行sql文件
    需求: 要在服务器上指执行sql 为了不影响线上用户正常使用,且执行10000行暂停10秒。然后用python 写了这样一个文件文件存放位置: /root/sql/  文件名:2 3 4 5 6  .....这样做是为了省事 用 range...
    99+
    2023-01-31
    批量 文件 python
  • DBeaver执行外部sql文件
    T1:DBeaver执行外部sql文件 如果数据库已经存在了,那么直接右击库名,如下图: 如果数据库不存在,外部sql文件中含有建库语句,可以先手动建库,再把sql文件中建库语句删了后执行脚本。 这种方法比较麻烦,直接执行sql脚本的方法...
    99+
    2023-08-24
    sql 数据库 mysql
  • clickhouse怎么执行sql文件
    在ClickHouse中,可以使用以下命令执行SQL文件: 进入ClickHouse客户端: clickhouse-client...
    99+
    2023-10-23
    clickhouse sql
  • Mysql执行sql脚本文件
    执行sql脚本文件 方法一 使用cmd命令执行(windows下,unix或linux在的其控制台下) 【Mysql的bin目录】\mysql –u用户名 –p密码 –D数据库...
    99+
    2023-09-03
    mysql 数据库 linux
  • oracle数据库执行sql文件
    使用oracle客户端连接数据库,从oracle官网下载客户端instantclient_18_3工具,到目录下打开cmd命令窗口: 个人网盘客户端工具:https://pan.baidu.com/s/1lM4Faat7Mq0gr7rzmf...
    99+
    2018-10-13
    oracle数据库执行sql文件
  • navicat执行sql文件的方法
    这篇文章将为大家详细讲解有关navicat执行sql文件的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。navicat怎么执行sql文件?1、打开navicat fo...
    99+
    2022-10-18
  • postgresql中如何执行sql文件
    目录PostgreSQL执行sql文件1.连接db,执行sql脚本2.通过psql,运行sql脚本3.pgadmin4界面管理工具postgresql命令行执行sql脚本文件总结postgresql执行sql文件 pos...
    99+
    2023-05-05
    postgresql执行sql文件 postgresql执行文件 postgresql sql文件
  • python执行js文件
    #!/usr/bin/python # -*- coding: UTF-8 -*- import execjs,os #执行本地自定义的js print execjs.compile('function test(){' ...
    99+
    2023-01-31
    文件 python js
  • plsql怎么批量执行sql文件
    在PL/SQL中,可以使用`@`符号来执行批量SQL文件。假设你的SQL文件名为`batch.sql`,包含多个SQL语句,你可以按...
    99+
    2023-09-28
    plsql sql
  • Python执行hive sql
    该python脚本是用于执行hive脚本的,需要设置hive的可执行环境变量,其实质转化为shell下命令 hive -e 'sql语句’ 的方式执行,然后把结果重定向到控制台显示。注:由于该脚本是直接调用shell中的hive...
    99+
    2023-01-31
    Python hive sql
  • [mysql]执行sql文件 error 1366 incorrect string value
    解决: sql文件转utf8 https://v.godloveworld.com/shi-345649219.html ...
    99+
    2020-03-19
    [mysql]执行sql文件 error 1366 incorrect string value
  • mysql执行sql脚本文件的方法
    小编给大家分享一下mysql执行sql脚本文件的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql执行sql脚本文件的...
    99+
    2022-10-18
  • Python 打包可执行文件
       Python程序需要依赖本机安装的Python库,若想在没有安装Python的机器上运行,则需要打包分发,目前有两个比较好用的工具:PyInstaller和py2exe。其中py2exe应用在windows下,而PyInstall则可...
    99+
    2023-01-31
    可执行文件 Python
  • win10如何执行python文件
    win10执行python文件的方法:1、打开终端命令行模式;2、使用cd命令切换到python文件目录;3、通过“python 文件名”命令执行python文件即可。具体操作步骤:在win10桌面中使用快捷键【win+r】打开运行窗口。在...
    99+
    2022-10-16
  • 如何在mysql中执行sql脚本文件
    一、sql脚本文件 简介 xxxx.sql这种文件被称为sql脚本文件。sql脚本文件中编写了大量的sql语句。我们执行sql脚本文件的时候,该文件中所有的sql语句会全部执行!批量的执行SQL语句,可以使用sql脚本文件。 上面这个vi...
    99+
    2023-08-19
    sql mysql 数据库
  • Python执行py文件需要可执行权限吗
    这篇文章主要讲解了“Python执行py文件需要可执行权限吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python执行py文件需要可执行权限吗”吧!案例解析这个问题描述起来有点违反直觉,...
    99+
    2023-07-05
  • sublime交互执行python文件方
    出处:http://blog.chinaunix.net/uid-12014716-id-4269991.html --------------------------------------------------------------...
    99+
    2023-01-31
    文件 sublime python
  • Windows环境下实现批量执行Sql文件
    使用场景:按文件名字正序,批量执行某文件夹下的所有sql文件,并输出日志 适合人群:实施工程师 一、使用篇 1、准备bat文件: 1.1、ExecSql.bat(执行脚本)(文件编码...
    99+
    2022-11-12
  • MySQL执行外部sql脚本文件的命令
    目录1.创建包含sql命令的sql脚本文件2.执行sql脚本文件(介绍三种方式)sql脚本是包含一到多个sql命令的sql语句,我们可以将这些sql脚本放在一个文本文件中(我们称之为...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作