如题,想在python中导入文件后使用my sql查询文件,请问应该怎么做呢








示例:
# 导包
import pymysql
# 创建连接对象
mydb = pymysql.connect(
host='localhost', # 数据库主机地址
user="root", # 数据库用户名
password="1234" , # 数据库密码
database=None, # 可以指定连接某个数据库
port=3306, # 端口号, 默认是3306
charset='utf8' # 使用的编码
)

我下载了pymysql的包,但是为什么这段代码运行不了呢
import MySQLdbconn=MySQLdb.connect(host="localhost",user="root",passwd="root",db="mydatabase",charset="utf8")cursor = conn.cursor()if conn:print("data base has already connected")

可以的,你下载一个pymysql的包,是专门通过python操作mysql数据库的,通过pymysql,你可以创建,连接,操作数据库文件,方法方式非常多,这里没有办法一一赘述。

可不可以连接上我本地的sql数据库,然后倒入文件到python可以跑sql代码,或者有其他方法可以倒入文件到python后跑sql代码吗

这是一个小流程: 这里给你举个例子参考一下:
原始数据在txt中 处理有很多不便 想要把它们插入到sql中去
代码如下:
连接数据库:
import MySQLdbconn=MySQLdb.connect(host="localhost",user="root",passwd="root",db="mydatabase",charset="utf8")cursor = conn.cursor()if conn:print("data base has already connected")
打开文件获取一行数据
f = open("data_first.csv","r")f.readline()#因为txt中第一行一般为列名,因此用readline先将这行数据跳过
拼接insert语句
我要插入的数据表为MyData,数据列为21列,第一列为id列。数据表已经在sql中存在,且txt中用逗号隔开的数据列也为21列
insertcolumn = "id "s = "'%s'"for i in range(1,20,1):s = s + ",'%s'"insertcolumn = "Insert into MyData "+"values("+s+")"
循环插入
这一部分需要注意的是,用readline读取的时候,会把每行末尾的\n也读取进去,可以用strip对其进行处理
while True:line = f.readline().strip('\n')#按行读取且处理掉换行符,效果:"\'\n'变为了''if line:#print(line.split(','))list = line.split(',')#数据以逗号分隔,因此用split(',')#print(len(list))#获取长度insertcolumn_full = insertcolumn%tuple(list)#%s的字符串格式化传参只支持元组和字典,不支持列表,因此这里需要用tuple(list)将list转为元组#print(insertcolumn_full)cursor.execute(insertcolumn_full)#运行conn.commit()#事务提交,这句一定要有!否则即使python不报错 数据也无法成功插入sqlelse:break
关闭
cursor.close() conn.close() f.close()