python实现数据库查询的简单示例

# -*- coding:utf-8 -*-
"""
使用python操作数据库的简单示例。
示例场景:当前已有数据库result_all,包含以md5为主键的文件详细信息。
当前有一批文件md5,需要查询这些文件的其他相关信息,并统计查询数量。
"""
import MySQLdb


def main():
    # 打开需要查询的md5,每一行为一个文件md5。
    f1 = open('md5.txt', 'r')
    # 查询结果写到result文件。
    f2 = open('result.txt', 'w+')
    # 建立数据库连接对象,传入地址用户名密码及数据库名称,端口默认3306可省略。
    conn = MySQLdb.connect(host='xxxxx', user='xxxx', passwd='xxxx', db='xxxx')
    # 建立游标对象cur。
    cur = conn.cursor()
    i = 0
    # 按行读取文件md5
    md5 = f1.readline()
    # 遍历md5.txt文件,直到读取到空行。
    while md5 != '':
        # 数据库查询语句,该数据库中文件md5的列名为cert_md5,通过占位符和从文件中读取的md5做匹配。
        sql = "SELECT file_md5 FROM `result_all` where cert_md5='%s'" % md5.split('\n')[0]
        # 执行数据库查询语句
        cur.execute(sql)
        # 获取所有查询结果
        result = cur.fetchall()
        # 对获取的结果根据需求做最后的格式化。
        data = str(result).split(',')
        for d in data:
            if len(d) > 20:
                d = d.replace(',', '').replace(')', '').replace('(', '').replace('\'', '').replace(' ', '')
                # 将查询结果写入到文件中。
                f2.write(d + '\n')
        i += 1
        # 做简单的查询计数,每查询一次count加1。
        print(md5.split('\n')[0], '-->ok--count:' + str(i))
        # 继续从文件中读取需要查询的md5。
        md5 = f1.readline()
    # 关闭文件对象和数据库连接对象。
    f1.close()
    f2.close()
    conn.close()


if __name__ == '__main__':
    main()

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值