格式化输出:中英文混排时对齐

问题引出

中文,韩文,日文共同特点:文字造型为方块形的基本元素,在计算机中的存储字节与英文字节占据的大小不同。自动补充时 中文空格 和 英文空格 大小不同。

解决方案

中文字段用中文空格补齐, chr(12288) 代表中文空格

常规输出格式:
for x in text3:
    s = x.split('|')  # 字符串处理
    s[1] = ''.join(s[1].split())  # 去除城市名中空格,如‘厦 门’
    print('{:<5}{:<10}{:<5}{:<20}{:<5}{:<5}'.format(s[0], s[1], s[2], s[3], s[4], s[5]))
结果:
zni   周宁         ZNS   zhouning             zn    3090 
zpi   邹平         ZLK   zouping              zp    3091 
zpu   漳浦         ZCS   zhangpu              zp    3092 
zpx   漳平西        ZXG   zhangpingxi          zpx   3093 
zqb   章丘北        ZVK   zhangqiubei          zqb   3094 
zqd   肇庆东        FCQ   zhaoqingdong         zqd   3095 
zqi   庄桥         ZQH   zhuangqiao           zq    3096 
zsh   昭山         KWQ   zhaoshan             zs    3097 
zsx   钟山西        ZAZ   zhongshanxi          zsx   3098 
zsz   朱砂古镇       ZSE   zhushaguzhen         zsgz  3099 

处理:

增加代码len1 = s[1].ljust(5, chr(12288))

ljust()方法语法:

str.ljust(width[, fillchar])
width -----------指定字符串长度。
fillchar ----------填充字符,默认为空格。
|
|
|
选择用中文空格chr(12288)代替英文空格“ ”
用修改格式后的len1代替s[1]

for x in text3:
    s = x.split('|')  # 字符串处理
    s[1] = ''.join(s[1].split())  # 去除城市名中空格,如‘厦 门’
	len1 = s[1].ljust(5, chr(12288))
    print('{:<5}{:<10}{:<5}{:<20}{:<5}{:<5}'.format(s[0], len1, s[2], s[3], s[4], s[5]))
结果
zni   周宁         ZNS   zhouning             zn    3090 
zpi   邹平         ZLK   zouping              zp    3091 
zpu   漳浦         ZCS   zhangpu              zp    3092 
zpx   漳平西        ZXG   zhangpingxi          zpx   3093 
zqb   章丘北        ZVK   zhangqiubei          zqb   3094 
zqd   肇庆东        FCQ   zhaoqingdong         zqd   3095 
zqi   庄桥         ZQH   zhuangqiao           zq    3096 
zsh   昭山         KWQ   zhaoshan             zs    3097 
zsx   钟山西        ZAZ   zhongshanxi          zsx   3098 
zsz   朱砂古镇       ZSE   zhushaguzhen         zsgz  3099 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值