Python实现文本内容智能截断

一、需求说明

工作中常常遇到文本展示美化的需求:只展示前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)

运行效果:

Python实现文本内容智能截断_Python

自动换行

--自动换行,每行最多展示10个字符

使用textwrap的fill方法

import textwrap


if __name__ == "__main__":
    t = '常用的测试用例设计方法有等价类、边界值、因果图、错误推测、判定表、正交表、场景法'

    # 自动换行--每行最多展示10个字符
    new_t = textwrap.fill(t, 10)
    print(new_t)

运行效果:

Python实现文本内容智能截断_文本截断_02

精简展示

--最多展示两行,每行最多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实现文本内容智能截断_Python_03

三、分析总结

Python轻松实现了文本内容的截断展示功能。这也许在PC端文本预览、APP端文本展示等场景下有一定的用处,可结合实际使用场景和需求进行定制和优化。


上一篇:Spring Boot——日志的介绍和使用


下一篇:Java 根据前端返回的字段名进行查询数据