注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

@fc_lamp

关注Web应用解决方案MySql/PHP/Python一盏名为"飞川"的灯~

 
 
 

日志

 
 

python 查询数据库写入csv文件  

2012-05-02 17:48:00|  分类: Web技术-Python |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

今天,我们再来简单说说python操作csv文件(哎~~什么都略懂、略懂。。。。。)。

实际上,python生成CSV文件很简单(什么是CSV文件GOOGLE吧),我们这里将从中数据库中查询出数据并写入CSV文件中,代码如下:

CSV.py

#coding:utf-8
#导入相关模块
import MySQLdb,string as S#模块新命名
#连接数据库
con = MySQLdb.connect(host='127.0.0.1',db='xxx',user='xxx',passwd='')
cur = con.cursor()
cur.execute('SET NAMES utf8')
#确定查询的字段
field_key = S.join(['id','one','two','three'],',') #注意列表分隔成字符串的方式
cur.execute('select %s from `xxx`'%(field_key))

total = float(cur.rowcount) #注意这里使用float是为让计算结果得出正确的小数位


#创建CSV文件
fp = open('d:/test.csv','a')
#由于数据库的编码是UTF8,所以先将字符串unicode格式存储(u),
#再以gbk编码因为是在win上文本默认是以ANSI编码)
csv = u'编号,第一,第二,第三\r\n'.encode('gbk')

fp.write(csv)
ii=0
for i in cur.fetchall():
    ii+=1
    print(ii)
    #数据库字段 "one" 值是中文,因此要转码
    #try ...防止不是utf8编码的字符
    try:
        one = unicode(i[1],'utf-8').encode('gbk') #这里unicode()与u'xxx'性质是一样的
    except Exception as e:
        one = ''
    one = one.replace('\r\n','')  #替换换行符
    #这里 xx if xx else '' 去除None值
    cc  = (i[0],one,i[2],\  #注意这个\ 符号的作用
           i[3]if i[3]else'')
    csv = '%s,%s,%s,%s\r\n'%cc
    fp.write(csv)

    #完成比
   print('已完成%0.2f'%((ii/total)*100)+'%') # 格式化问题参看:《解析》

fp.close()

  评论这张
 
阅读(2064)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017