免费注册 查看新帖 |

Chinaunix

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

如何写成这样的数据格式用于输出? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-04-26 20:33 |只看该作者 |倒序浏览
本帖最后由 luofeiyu_cu 于 2014-04-27 14:22 编辑

我想拥有一个好的数据输出格式,发现无法做到。

table='''乘客姓名,性别,出生日期
HuangTianhui,男,1948/05/28
姜翠云,女,1952/03/27
李红晶,女,1994/12/09
LuiChing,女,1969/08/02
宋飞飞,男,1982/03/01
唐旭东,男,1983/08/03
YangJiabao,女,1988/08/25
买买提江·阿布拉,男,1979/07/10
安文兰,女,1949/10/20
胡偲婠(婴儿),女,2011/02/25
(有待确定姓名),男,1985/07/20
'''
data=[ [cell  for cell in row.split(",") ] for row in table.split("\n")  if row]
len0=max([ len(x[0])   for x in data])
len1=max([ len(x[1])   for x in data])
len2=max([ len(x[2])   for x in data])

for cell in data:
    print("_"*((len0+len1+len2)*2+4) )
    print("|%24s|%4s|%20s|" % (cell[0],cell[1],cell[2]))

len0 ,len1,len2都是三个字段中,最大的长度值,分别是12,2,10。
我的做法是:无论是什么字符,都用2个宽度来输出,发现无法对齐。



显示结果在这里,
请问,当输出中有中英文混杂时,如何对齐输出?   

forum.php.jpg (49.31 KB, 下载次数: 17)

forum.php.jpg

test.zip

399 Bytes, 下载次数: 2

论坛徽章:
0
2 [报告]
发表于 2014-04-28 21:49 |只看该作者
问题解决了,
table='''乘客姓名,性别,出生日期
HuangTianhui,男,1948/05/28
姜翠云,女,1952/03/27
李红晶,女,1994/12/09
LuiChing,女,1969/08/02
宋飞飞,男,1982/03/01
唐旭东,男,1983/08/03
YangJiabao,女,1988/08/25
提江·阿布拉,男,1979/07/10
安文兰,女,1949/10/20
胡偲婠(婴儿),女,2011/02/25
(有待确定姓名),男,1985/07/20
'''
table = table.encode('gb18030')
data = [[cell  for cell in row.split(b",")]
        for row in table.split(b"\n")  if row]
len0 = max([len(x[0]) for x in data])
len1 = max([len(x[1]) for x in data])
len2 = max([len(x[2]) for x in data])

for cell in data:
    print("_" * (len0+len1+len2+4))
    line = (
        b"|" + cell[0].rjust(len0) +
        b"|" + cell[1].rjust(len1) +
        b"|" + cell[2].rjust(len2) + b"|"
    )
    print(line.decode('gb18030'))

还有个不足的地方,人家的表格,凡是横线,可以一段一段的,我的横线全部连接在了一起,请问,如何让它一段一段,中间有点空隙。

论坛徽章:
0
3 [报告]
发表于 2014-04-28 21:56 |只看该作者
问题解决了,换个符号。
print("—" * (len0+len1+len2+4))
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP