Python教程75:textwrap模块 — 文本自动换行与填充

TextWrap模块是一个Python模块,它提供了一些函数和方法来处理文本字符串的包装和填充。这个模块的主要功能是将一个长字符串根据指定的宽度分成多行,可以用于格式化文本输出,使其在指定的行数内完成显示。这个过程通常用于控制文本在终端、文本框、报表或其他输出媒介上的布局,以确保文本在不超出指定宽度的情况下可读性良好。

1.wrap(text, width, kwargs):该函数可以将一个长字符串根据指定宽度分成多行,返回一个列表,其中每个元素都是一个分行后的文本段落。它有三个参数:text表示要被格式化处理的字符串或文本,width表示每行的最大宽度,kwargs表示其他关键字参数。


import textwrap

text = '危楼高百尺,手可摘星辰。不敢高声语,恐惊天上人。'
width = 12
wrapped_text = textwrap.wrap(text, width)
for line in wrapped_text:
    print(line)
    # 危楼高百尺,手可摘星辰。
    # 不敢高声语,恐惊天上人。
  1. fill(text, width, kwargs):该函数可以将一个长字符串根据指定宽度分成多行,将它们组合在一起形成一个新的字符串,返回新的字符串。它同样有三个参数:text表示要被格式化处理的字符串或文本,width表示每行的最大宽度,kwargs表示其他关键字参数。

import textwrap

text = '危楼高百尺,手可摘星辰。不敢高声语,恐惊天上人。'
width = 12
new_text = textwrap.fill(text, width)
print(new_text)
# 危楼高百尺,手可摘星辰。
# 不敢高声语,恐惊天上人。

3.文本缩进:可以使用indent()函数为文本的每一行添加一些前缀,实现文本缩进(前缀文本为空格)的功能。这个函数接受两个参数:要格式化处理的字符串或文本,以及要添加的前缀字符串。

import textwrap

text = '危楼高百尺,手可摘星辰。\n不敢高声语,恐惊天上人。'
new_text = textwrap.indent(text, prefix=' ')  # 添加空格的前缀
print(new_text)
#  危楼高百尺,手可摘星辰。
#  不敢高声语,恐惊天上人。

4.textwrap.dedent(text):自动删除文本中的缩进,通常用于处理多行字符串的缩进。

import textwrap
text = '''
    危楼高百尺,手可摘星辰。
    不敢高声语,恐惊天上人。
'''
new_text = textwrap.dedent(text)  # 添加李白: 的前缀
print(new_text)
# 危楼高百尺,手可摘星辰。
# 不敢高声语,恐惊天上人。

5.textwrap.shorten(text, width, **kwargs):用于缩短文本,并可以选择性地添加省略号(ellipsis)以表示文本被截断。

import textwrap

text = '''
    危楼高百尺,手可摘星辰。
    不敢高声语,恐惊天上人。
'''
new_text = textwrap.shorten(text, width=20, placeholder='...')
print(new_text)
# 危楼高百尺,手可摘星辰。...

函数的返回值是一个新的字符串,其中超过width长度的文本已被缩短。缩短的方式是在单词之间断开,并添加省略号(…)来表示被省略的部分。


import textwrap
text = "This is a very long string that I want to shorten to fit within a certain width."
width = 20

shortened_text = textwrap.shorten(text, width)
print(shortened_text)   # This is a very [...]

完毕!!感谢您的收看

----------★★历史博文集合★★----------
我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/gxz888/article/details/134805738