线性编程11--读取存放sql语句的文件

读取存放sql语句的文件

"""
目的:读取存放sql语句的文件
    -- sql文件
        将初始化sql语句放到文件中,加注释,加空行区分行,使用代码输出所有行,将sql语句存入列表并查看
    提示:
        sql文件未必放到.sql类型的文件中,txt完全支持
        sql语句最好一行写一句,建议分号结尾
        sql语句中的表名,建议加上数据库名,以防意外
        如果文件中加注释,空行,需要代码中处理
        一般数据库中都支持--注释
文件内容如下:
  -- 注册接口:test02、test03
  delete from user where username = 'test02'
  delete from user where username = 'test03'
  insert into user(id,username,password) values(3,'test03','123456')
  --登陆接口:test01
  delete from user where username = 'test01';
  insert into user(id,username,password) values(2,'test01','123456')
"""
# 读取sqls01.txt文件
sqlfile = open('sqls01.txt', 'r')#去掉r 也是读取文件
# 创建列表存放所有sql命令
sqls = []
for sql in sqlfile:#sql代表文件中的某一行
    #print(sql.strip(),end='')#strip删除首尾的空白符(空格,tab,回车)
    if len(sql.strip())>0 and not sql.startswith('--'):#startswith以什么开头
        # print(sql.strip())
        sqls.append(sql.strip())#append追加
print(sqls)
sqlfile.close()#关闭文件

读取sql文件并执行sql命令

"""
    读取sql文件并执行sql命令
"""
import pymysql
#打开文件
sqlfile = open('sqls01.txt','r')
# 连接数据库
conn = pymysql.connect(host='192.168.139.137',user='root',password='123456',db='exam')
# 创建游标
cursor = conn.cursor()
for sql in sqlfile:#遍历文件中的行,sql代表一行
    if len(sql.strip())>0 and not sql.startswith('--'):
        sql = sql.strip()
        cursor.execute(sql)
conn.commit()#最后提交数据一次
sqlfile.close()#关闭文件
conn.close()#关闭数据库

自动执行存放sql语句文件中的命令

a)将初始化sql语句写到文件中,.txt就可以,也可以使用.sql文件
注意:sql语句必须符合语法要求
    一般会在文件中添加注释(--),也会加空行
b)sqlfile=open(文件名,'r')
    文件名为存放sql语句的文件名
    文件打开后,文件信息存入sqlfile
    要读取文件行或数据,一般需要循环遍历
c)for sql in sqlfile:
    处理语句
    说明:sql代表文件sqlfile中的一行(从第一行开始,一直到结束)
d)sql.strip()
    表示去掉sql头尾的空白符(空格,Tab键,回车键),中间的不去
e)sql.startswith('--')
    表示判断sql是不是以--开头
f)len(sql.strip())
    表示sql去掉首尾空白符以后,有多少个有效字符
    len(sql.strip())>0表示去掉首尾空白符后,是有效行
g)执行sql
    connect 连接数据库
    cursor()创建游标
    循环执行sql语句:cursor.execute(sql)
    commit提交保存数据
    close关闭数据库
上一篇:Python网络爬虫——爬取哔哩哔哩网站原创视频以及其动漫视频


下一篇:tar 解压缩更改目录结构