当前位置:Gxlcms > 数据库问题 > mysql远程快速导出csv格式数据工具

mysql远程快速导出csv格式数据工具

时间:2021-07-01 10:21:17 帮助过:25人阅读

-*- coding:UTF-8 -*- #@author Jane.Hoo #@date 2016/11/29 from __future__ import division import os import MySQLdb import time import commands import logging import re import math print ******************************* timestamp=time.strftime("%Y%m%d%H%M%S", time.localtime()) logfile=/tmp/myloaddataout.log%s%timestamp logging.basicConfig(level=logging.DEBUG, format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s, datefmt=%a, %d %b %Y %H:%M:%S, filename=%s%logfile, filemode=w) print 导出日志记录在:%s%logfile ################################################################################################# #定义一个StreamHandler,将INFO级别或更高的日志信息打印到标准错误,并将其添加到当前的日志处理对象# console = logging.StreamHandler() console.setLevel(logging.INFO) formatter = logging.Formatter(%(name)-12s: %(levelname)-8s %(message)s) console.setFormatter(formatter) logging.getLogger(‘‘).addHandler(console) ################################################################################################# #python /cygdrive/c/Users/Jane.Hoo/PycharmProjects/loaddata/MySQLloaddataout.py db_host=127.0.0.1 db_user=test db_pwd=test db=test db_port=int(3306) class Toolloadout: def __init__(self,pathfile=0): self.pathfile=pathfile #得到数据库连接 def getdbconn(self,DB_HOST=db_host,DB_USER=routeload,DB_PWD=routeload,DB=test01,DB_PORT=3306): logging.debug(%s:%s:%s:%s:%s%(DB_HOST,DB_USER,DB_PWD,DB,DB_PORT)) conn=unlink try: conn=MySQLdb.connect(host=DB_HOST,user=DB_USER,passwd=DB_PWD,port=int(DB_PORT),db=DB) logging.info(数据库连接成功) except MySQLdb.OperationalError,e: logging.warning(数据库连接失败!%s%e) return conn #关闭数据库连接 def closedbconn(self,conn=0): logging.debug(闭数据库连接) conn.close() #检查导出文件 def chekpathfile(self): pathfile=self.pathfile check_flag=0 iffile_exists=os.path.exists(pathfile) if iffile_exists==1: check_flag=1 logging.info(导出文件已存在!) else: path=os.path.split(pathfile)[0] ifpath_exists=os.path.isdir(path) if ifpath_exists==1: logging.info(%s是有效的路径%path) else: check_flag=1 logging.info(%s是无效的路径%path) return check_flag if __name__==__main__: print 准备导出... pathfile=raw_input("请输入导出文件路径:").strip() cmd_sql=raw_input(请输入要查询的语句:).strip() c=Toolloadout(pathfile) pf_check=c.chekpathfile() if pf_check==0: logging.info(文件路径校验通过) ifinputdbmsg=raw_input(是否需要自定义数据库连接信息(Y|N)?).strip() if ifinputdbmsg==Y: db_host=raw_input(请输入数据地址:).strip() db_user=raw_input(请输入用户名:).strip() db_pwd=raw_input(请输入密码:).strip() db=raw_input(请输入数据库名:).strip() db_port=raw_input(请输入数据库端口:).strip() if db_host==‘‘ or db_user==‘‘ or db_pwd==‘‘ or db==‘‘: logging.info(自定义数据库输入信息有为空.) check_flag=1 if_port=re.match(r"[0-9]", db_port) if if_port: db_port=int(db_port) else: db_port=int(3306) logging.info(端口格式输入有误,将使用默认端口%s%db_port) conn=c.getdbconn(db_host,db_user,db_pwd,db,db_port) if str(conn)!=unlink: selectsql="mysql -A %s -h %s -u%s -p%s -P%s -ss -e ‘%s;‘ | sed ‘s/\\t/,/g;s/^//;s/$//;s/\\n//g‘ >%s"%(db,db_host,db_user,db_pwd,db_port,cmd_sql,pathfile) print querysql:,selectsql try: os.system(%s%selectsql) except BaseException,e: logging.info(导出数据过程中报错!%s%e) c.closedbconn(conn) else: logging.info(失败) else: logging.info(文件路径校验不通过,导出结束)

 

作者:jane.hoo 
出处:jane.hoo的博客 http://www.cnblogs.com/janehoo/ 
[人生不设限,生命不息,折腾不止] 
您的支持是对博主最大的鼓励,感谢您的认真阅读。本文版权归作者所有,欢迎转载,但请保留该声明。

 

mysql远程快速导出csv格式数据工具

标签:localtime   get   密码   使用   脚本语言   import   time   标准   use   

人气教程排行