python读取文件内容并写入远端mysql数据库

本文介绍了一个使用 Python 连接 MySQL 数据库并执行数据写入操作的示例程序。该程序首先定义了一个 MysqlServer 类用于处理数据库连接及 SQL 执行,然后通过 read 方法读取指定文件的内容,并将其作为评论数据插入到数据库中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import MySQLdb
import os


class MysqlServer(object):
    def __init__(self, host, port, user, password):
        self.host = host
        self.port = port
        self.user = user
        self.passwd = password
        self.conn = self.__create_connection()

    def __create_connection(self):
        #和远端mysql建立连接
        conn = MySQLdb.connect(host=self.host, port=self.port, user=self.user, passwd=self.passwd, charset='utf8')
        #选取数据库
        conn.select_db("db_name")
        return conn

    def close(self):
        #关闭连接
        self.conn.close()

    def execute(self, sql):
        #执行sql语句
        cursor = self.conn.cursor()
        cursor.execute(sql)
        self.conn.commit()


def get_comment_data_info(file_path):
    #获取文件内容
    with open(file_path, 'r') as file:
        comment_data_info = file.read()
    return comment_data_info


def write_data_to_db(data):
    #判断文件是否存在
    if not os.path.exists(data['data_info']['file_path']):
        return "file: %s not exist" % data['data_info']['file_path']
    comment_data_info = get_comment_data_info(data['data_info']['file_path'])

    #生成sql语句
    sql = "INSERT INTO user_info(username, course_id, score, comment) VALUES " "('%s', '%s', '%d', '%s')" % \
          (data['data_info']['username'], data['data_info']['course_id'], data['data_info']['score'], comment_data_info)

    try:
        mysql_server = MysqlServer(data['db_info']['host'], data['db_info']['port'], data['db_info']['user'],
                                   data['db_info']['passwd'])
        mysql_server.execute(sql)
    except Exception as e:
        return str(e)
    return "insert success"


def main():
    data = {
        #远端数据库信息
        "db_info": {"host": "192.168.100.100",
                    "port": 3306,
                    "user": "root",
                    "passwd": "abcdefg", },
        #需要插入的信息以及文件路径
        "data_info": {"username": "user1",
                      "course_id": "100",
                      "score": 100,
                      "file_path": "/test1233"}
    }
    status = write_data_to_db(data)
    print(status)


if __name__ == "__main__":
    main()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值