python从mysql导出大量数据_python3实现mysql导出数据到文件

使用python3实现mysql导出数据到文件的脚本如下:

import pymysql

import time

host = ''

port =3306

user =''

passwd =''

db =''

sql = 'select ACCEPT_NO,BSS_ACT_CODE,USER_NO,ACC_NBR,PROD_CODE,PROD_NAME,COMBO_FEE,PROMISE_TIME,

PRE_PAY_FEE,FUSE_TYPE,CUST_TYPE,GROUP_CUST_CODE,SUB_MC,TARGET_MARKET ,TERMINAL_MODEL,TERMINAL_TAC,

TERMINAL_NUM,REQUEST_TIME,MECHANISM_CODE,JOB_NUMBER,CHANNEL_CODE,PROVINCE_NO,CITY_NO,AREA_NO,PARA_ENTITY,

ORDER_TIME,GRANT_FEE,USER_TYPE,USER_VAL,file_name,unix_timestamp(input_date)from rc_read_pack_act_t'

text_name = 'ORDER_0020_' + str(time.strftime("%Y%m%d%H%M%S")) + '_0001.txt'

#这个地方需要关注的是mysql倒出时间格式的数据需要进行转换成时间戳操作 --time.strftime("%Y%m%d%H%M%S")

class SelectMySQL():

def __init__(self):

self.host = host

self.port = port

self.user = user

self.passwd = passwd

self.db = db

def select_data(self,sql):

conn = pymysql.connect(host=self.host, port=self.port, user=self.user, passwd=self.passwd, db=self.db)

cursor =conn.cursor()

global effect_row

effect_row = cursor.execute(sql)#查询出表中共有多少条满足条件的数据

text_name = 'ORDER_0020_' + str(time.strftime("%Y%m%d %H:%M:%S")) + '_0001.txt' #文件名称

result = cursor.fetchall()#取出所有数据(result是个元组)

new_result = list(result)#转换成列表 --这步有点多余,也可以不转

x = time.localtime()

for t_new_result in new_result:#t_new_result是一个大的列表,循环里面的小元组

tt_new_reslut = list(t_new_result)#转成列表

tt_new_reslut[-1] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(tt_new_reslut[-1]))#元素修改,把在上面提到的时间戳格式化#修改列表里的元素

with open('ORDER_0020_'+ str(time.strftime("%Y%m%d%H%M%S"))+'_0001.txt', 'a+', encoding='utf-8') as f:

f.write(str(tt_new_reslut).lstrip('[').rstrip(']').replace(",", "||").replace('\'', '') + '\n')#针对客户提出的文件格式进行修改

if __name__ == '__main__':

s = SelectMySQL()

s.select_data(sql)

print("\033[41;1m导出完成 共有%s条数据导出,请在当前文件夹下查看%s\033[0m" % (effect_row,text_name))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值