使用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))