python读出mysql数据写出到csv文件中[整理]

python读出mysql数据打印乱码

一、添加sys模块设置默认编码集

import sys
reload(sys)
sys.setdefaultencoding('utf8')

二、添加codecs模块设定输出csv文件编码格式

f.write(codecs.BOM_UTF8)

三、设定mysql数据库编码集

conn=MySQLdb.connect(
        host='',
        port = ,
        user='',
        passwd='',
        db='',
        charset='gbk'
    )

四、接收调用时传递的参数

if __name__ == "__main__":
    exportCSV(sys.argv[1])
整体代码
#!/usr/bin/python
#encoding=utf-8
import MySQLdb
import codecs
import sys
reload(sys)
sys.setdefaultencoding('utf8')

def exportCSV(groupId):
    conn=MySQLdb.connect(
        host='',
        port = ,
        user='',
        passwd='',
        db='',
        charset='gbk'
    )
    cur=conn.cursor()
    count=cur.execute("select group_id,group_name from mk_bs_sectors where group_id='"+groupId+"'")
    temp=cur.fetchone()
    groupName=temp[1]+".csv"
    title="title,"+temp[1]+"\r\nlac,ci,name,name"
    print groupName.encode("GBK")
    with open(groupName,'w') as f:
        f.write(codecs.BOM_UTF8)
        baseNum=cur.execute("select lac,ci,ci_name,edge_name from mk_bs_sectors_base where group_id='"+temp[0]+"'")
        base=cur.fetchmany(baseNum)
        f.write(title+"\r\n")
        for bs in base:
            lac=bs[0]
            ci=bs[1]
            ciName=bs[2]
            edgeName=bs[3]
            f.write(lac+","+ci+","+ciName+","+edgeName+"\r\n")


if __name__ == "__main__":
    exportCSV(sys.argv[1])

你可能感兴趣的:(python相关)