免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4989 | 回复: 7
打印 上一主题 下一主题

python从数据库读取格式化输出问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-10-24 20:42 |只看该作者 |倒序浏览
本帖最后由 xduck 于 2012-10-24 20:46 编辑

各位前辈好,我碰到一个问题。

是这样的,关于从mysql里面读取数据然后格式化输出到终端。
数据库里面的数据如下


最后的输出时如下的样式





下面是代码
  1. # -*- coding: utf-8 -*-
  2. import MySQLdb
  3. conn = MySQLdb.connect(host='localhost',user='root',passwd=' 110 ',db='first',charset='utf8')

  4. cursor = conn.cursor()
  5. cursor.execute('select * from Products')
  6. numrows = int(cursor.rowcount)
  7. for i in range(numrows):
  8.     row =  cursor.fetchone()
  9.     print "%s  %s  %s" %(row[0],row[2],row[1])
  10. cursor.close()

  11. conn.close()
复制代码
我想最后在终端的输出是对齐的,就是那个尺码,左对齐或者右对齐,但是对语言还不太熟悉,冒昧哪位前辈指点下。谢谢

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
2 [报告]
发表于 2012-10-24 22:19 |只看该作者
可以给定一个最大宽度, 然后左对齐就可以了.


print "%-10s %-10s" % ('hello', 'boy')

论坛徽章:
0
3 [报告]
发表于 2012-10-24 23:31 |只看该作者
从数据库里面抽取的数据时元组类型,因为在数据库里面所有的字符都是没有对齐,这个情况是针对字符串来说的吧,这个倒是也试过,但是结果是这样的



源代码
  1. print "%s  %s  %15s" %(row[0],row[1],row[2])
复制代码
回复 2# linux_c_py_php


   

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
4 [报告]
发表于 2012-10-25 11:03 |只看该作者
大哥, 是-15, 你能仔细点?

论坛徽章:
0
5 [报告]
发表于 2012-10-25 12:23 |只看该作者
回复 4# linux_c_py_php


    我突然想起来了,你说这个原因提醒我,从数据库里面抽取出来的数据是元组,是一个整体,不管15还是-15 最后造成的结果只是整体的左移或者右移。不会对其,你说的是针对字符串。

论坛徽章:
0
6 [报告]
发表于 2012-10-25 15:24 |只看该作者
回复 5# xduck

问题刚刚解决了是这样的
  1. print('{row[0]:20}{row[2]:20}{row[1]:20}'.format(row=row))
复制代码
或者这个
  1. print('{:25}{:25}{:25}'.format(row[0],row[2],row[1]))
复制代码

论坛徽章:
0
7 [报告]
发表于 2012-10-26 12:40 |只看该作者
回复 6# xduck


    其实没解决。造成这个的原因是中英文的字符串宽度不一样。所以中文和英文放一块的时候无法对齐。例子如下
http://www.zhimaq.com/questions/2882/python

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
8 [报告]
发表于 2012-10-26 12:52 |只看该作者
原来如此, 左对齐解决不掉吗.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP