问题引出
中文,韩文,日文共同特点:文字造型为方块形的基本元素,在计算机中的存储字节与英文字节占据的大小不同。自动补充时 中文空格 和 英文空格 大小不同。
解决方案
中文字段用中文空格补齐, 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