Python 字符串中英文对齐

admin 2024年2月28日08:53:32评论11 views字数 793阅读2分38秒阅读模式

Python 在终端上打印字符串时,纯英文比较好对齐,中英文混杂时不容易对齐。

英文字符串对齐方法:

text1 = "apple"text2 = "banana"
# 左对齐print("{:<10} | {}".format(text1, text2))# 右对齐print("{:>10} | {}".format(text1, text2))# 居中对齐print("{:^10} | {}".format(text1, text2))

Python 字符串中英文对齐

当字符串为中文时,此时很难对文本对齐。比如前一个字符串没对齐时,后面跟的数字就歪歪扭扭的:

print("{:<30}  {}".format(truncated_s, len(value)))

Python 字符串中英文对齐

字符串对齐的逻辑是长度不足时补空格,但中英文字符宽度不同,中文字符的宽度是英文字符的两倍。 字符串自带的 format 方法在处理对齐时只考虑了英文,处理中文时就会出现无法对齐的现象。

既然是字符宽度不同导致的,只要能正确计算字符串的宽度而非字符个数,那么就可以根据字符串的宽度来补空格。

处理宽字符对齐的函数如下:

import wcwidth
def align_text(text, width): """中文对齐""" text_width = wcwidth.wcswidth(text) if text_width < width: return text + ' ' * (width - text_width) else: return text

这里用到了 wcwidth 模块,使用前需要 pip install wcwidth 进行安装。更改后的对齐语句为:

print("{}  {}".format(align_text(truncated_s, 30), len(value)))

中文对齐输出效果如下:

Python 字符串中英文对齐

全文完。

如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。

原文始发于微信公众号(生有可恋):Python 字符串中英文对齐

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月28日08:53:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Python 字符串中英文对齐https://cn-sec.com/archives/2532229.html

发表评论

匿名网友 填写信息