一、需求说明
工作中常常遇到文本展示美化的需求:只展示前10个字符,超出展示...;自动换行,每行最多展示10个字符;最多展示两行,每行最多10个字符,超出在第二行末尾展示...
那就来试试使用Python实现这些需求吧
二、代码实现
内容截取
--只展示前10个字符,超出展示...
使用字符串的切片来实现
def text_short(text, length):
if len(text) > length:
text = f"{text[0:length]}..."
return text
if __name__ == "__main__":
t = '常用的测试用例设计方法有等价类、边界值、因果图、错误推测、判定表、正交表、场景法'
# 内容截取--只展示前10个字符,超出展示...
new_t = text_short(t, 10)
print(new_t)
运行效果:
自动换行
--自动换行,每行最多展示10个字符
使用textwrap的fill方法
import textwrap
if __name__ == "__main__":
t = '常用的测试用例设计方法有等价类、边界值、因果图、错误推测、判定表、正交表、场景法'
# 自动换行--每行最多展示10个字符
new_t = textwrap.fill(t, 10)
print(new_t)
运行效果:
精简展示
--最多展示两行,每行最多10个字符,超出在第二行末尾展示...
先使用textwrap的fill方法自动换行,再切片截取并拼接...
import textwrap
def text_cut(text, max_row, max_len):
tw = textwrap.wrap(text, max_len) # 以每行max_len个字符自动换行
if len(tw) > max_row: # 超出最大行数展示...
text = '\n'.join(tw[:max_row]) + '...'
return text
if __name__ == "__main__":
t = '常用的测试用例设计方法有等价类、边界值、因果图、错误推测、判定表、正交表、场景法'
# 精简展示--最多展示两行,每行最多10个字符,超出在第二行末尾展示...
new_t = text_cut(t, 2, 10)
print(new_t)
运行效果:
三、分析总结
Python轻松实现了文本内容的截断展示功能。这也许在PC端文本预览、APP端文本展示等场景下有一定的用处,可结合实际使用场景和需求进行定制和优化。