python查询可变字段的语句怎么格式化保存到文档

z41456 2016-10-29 12:43:25
查询语句可能三个字段或者4个字段,怎么查出来格式化保存文件。 python版本2.6.6
#coding:utf-8


import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )


import time


import MySQLdb


class SelectSql(object):
def select_data(self,sql):
result = []
try:
conn = MySQLdb.connect('ip',port=3306,user='user',passwd='passwd',db='db',charset='utf8')
cur = conn.cursor()
cur.execute(sql)
alldata = cur.fetchall()
#print alldata
for col in alldata:
result.append(col)
#print result
except Exception as e:
print ('Error msg:' + str(e))
finally:
# if 'cur' in locals():
cur.close()
# if 'conn' in locals():
conn.close()
return result


def save_date(self,sql,filename):
results = self.select_data(sql)
with open(filename,'w') as f:
for result in results:

#如何保存查询出来变长的字段,字段可以用列表推导式弄出来,但是怎么格式化????

print >>f,("%10s %-20s %5d" % tuple([result[i] for i in range(len(result))]))

if __name__ == '__main__':
sql='slect a,b,c from table_a'
sql2= 'select e,f,g,h from table_b'
select = SelectSql()

select.save_date(sql,'name1.txt')

select.save_date(sql2,'name2.txt')

...全文
229 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
z41456 2016-10-31
  • 打赏
  • 举报
回复
谢谢,用了xlwt搞到Excel里还是好搞点,就是日期格式的有点麻烦,还好解决了
永远都学不完 2016-10-30
  • 打赏
  • 举报
回复
可以直接保存到CSV文件中:
import csv
db = oral.connect(user, password, host)
cr = db.cursor()
rs=cr.fetchall()
for row in range(len(cr.description)):		#获取列名
    title.append(cr.description[row][0])
fc = open('XXX.csv', 'w+', newline='')
writer = csv.writer(fc)
writer.writerow(title)
writer.writerows(rs)
fc.close()
z41456 2016-10-29
  • 打赏
  • 举报
回复
还是用字符串保存起来,再整成Excel吧

37,737

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧