背景
在 python 编程中,如果遇到存在换行符的字符串(例如从别处请求获取到的字符串内容),在使用 print 进行打印时,是比较难以优雅处理的。往往带来文本的混乱。
print 打印包含换行符的文本
如下的代码中,构造了一个字典,字典存储了不同人的信息,信息部分的内容存在换行符。
# -*- coding:UTF-8 -*-
# region 引入调试模块
from faker import Faker
# endregion
faker = Faker()
数据项 = {faker.name(): '年龄:{}\n手机:{}'.format(faker.random.randrange(2, 22), faker.phone_number()),
faker.name(): '年龄:{}\n手机:{}\n邮箱:{}'.format(faker.random.randrange(10, 30), faker.phone_number(), faker.email()),
faker.name(): '年龄:{}\n手机:{}\n邮箱:{}\n地址:{}'.format(faker.random.randrange(10, 30), faker.phone_number(), faker.email(), faker.address().replace('\n', ''))}
for 姓名, 信息 in 数据项.items():
print(姓名.ljust(30), 信息.ljust(30), '|')
以上代码希望通过 ‘\t’ 将姓名与信息进行对齐打印,以提供良好的阅读体验。代码实际打印效果如下:
从以上的打印输出来看,由于换行符的影响,信息部分的内容换行后错位移动到了行首,与行首的姓名混合在一起,使得打印输入信息混乱,难以阅读。
DebugInfo对齐打印
pip install DebugInfo
下面的代码引入 DebugInfo模块,使用表格模板来打印姓名和信息的内容,观察打印效果。
# -*- coding:UTF-8 -*-
# region 引入调试模块
from faker import Faker
from DebugInfo.DebugInfo import *
# endregion
faker = Faker()
数据项 = {faker.name(): '年龄:{}\n手机:{}'.format(faker.random.randrange(2, 22), faker.phone_number()),
faker.name(): '年龄:{}\n手机:{}\n邮箱:{}'.format(faker.random.randrange(10, 30), faker.phone_number(), faker.email()),
faker.name(): '年龄:{}\n手机:{}\n邮箱:{}\n地址:{}'.format(faker.random.randrange(10, 30), faker.phone_number(), faker.email(), faker.address().replace('\n', ''))}
白板 = 调试模板()
白板.添加一行('姓名', '信息', '对齐参考').修饰行(青字)
for 姓名, 信息 in 数据项.items():
白板.添加一行(姓名, 信息, '|')
白板.展示表格()
代码打印输出如下:
从以上打印输出我们可以看到,对齐参考线整齐的对齐在第三列,第二列的信息也整齐划一,对齐效果非常完善,有力保障了阅读体验。
小结
以上就是本次分享的 DebugInfo模块在对齐打印包含换行符的字符串场景下的使用方法和使用效果。感谢大家。