python textwrap_[Python标准库]textwrap——格式化文本段落
textwrap——格式化文本段落
作用:通過(guò)調(diào)整換行符在段落中出現(xiàn)的位置來(lái)格式化文本。? ? ? ? ?Python 版本:2.5 及以后版本? ? ? ? ?需要美觀打印時(shí),可以用 textwrap 模塊來(lái)格式化要輸出的文本。這個(gè)模塊允許通過(guò)編程提供類(lèi)似段落自動(dòng)換行或填充特性等功能。 示例數(shù)據(jù)
# textwrap_example.py
sample_text = '''
The textwrap module can be used to format text for output in
situations where pretty-printing is desired.? It offers
programmatic functionality similar to the paragraph wrapping
or filling features found in many text editors.
'''
填充段落? ? ? ? ?fill() 函數(shù)取文本作為輸入,生成格式化的文本作為輸出。
import textwrap
from textwrap_example import sample_text
print 'No dedent:\n'
print textwrap.fill(sample_text, width=50)
去除現(xiàn)有縮進(jìn)? ? ? ? ?在前面的例子中,輸出里混合嵌入了制表符和額外的空格,所以格式不太美觀。從示例文本刪除所有行中都有的空白符前綴可以生成更好的結(jié)果,從而能直接使用 Python 代碼中的 docstring 或嵌入的多行字符串,同時(shí)自動(dòng)去除代碼的格式化。示例字符串人為地引入了一級(jí)縮進(jìn),以便展示這個(gè)特性。
import textwrap
from textwrap_example import sample_text
dedeted_text = textwrap.dedent(sample_text)
print 'Dedented:'
print dedented_text
由于 dedent(去除縮進(jìn))與 indent(縮進(jìn))正好相反,因此這里的結(jié)果是得到一個(gè)文本塊,而且刪除了各行最前面都有的空白符。如果某一行比其他行縮進(jìn)更多,則會(huì)有一些空白符未刪除。? ? ? ? ?以下輸入:? Line one.? ? Line two.? Line three.? ? ? ? ?會(huì)變成: Line one.? ?Line two. Line three. 結(jié)合 dedent 和 fill? ? ? ? ?接下來(lái),可以把去除縮進(jìn)的文本傳入 fill(),并提供一組不同的 width 值。
import textwrap
from textwrap_example import sample_text
dedeted_text = textwrap.dedent(sample_text).strip()
for width in [ 45, 70 ]:
print '%d Columns:\n' % width
print textwrap.fill(dedented_text, width=width)
這會(huì)生成指定寬度的輸出。 懸掛縮進(jìn)? ? ? ? ?不僅輸出的寬度可以設(shè)置,還可以單獨(dú)控制第一行的縮進(jìn),以區(qū)別后面各行。
import textwrap
from textwrap_example import sample_text
dedeted_text = textwrap.dedent(sample_text).strip()
print textwrap.fill(dedented_text,
initial_indent='',
subsequent_indent=' ' * 4,
width=50,
)
這樣會(huì)生成一種懸掛縮進(jìn),即第一行的縮進(jìn)小于其他行的縮進(jìn)。
縮進(jìn)值還可以包含非空白字符。例如,懸掛縮進(jìn)可以加前綴 * 來(lái)生成項(xiàng)目符號(hào)。
總結(jié)
以上是生活随笔為你收集整理的python textwrap_[Python标准库]textwrap——格式化文本段落的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 嘉联财富卡是什么
- 下一篇: 非柜面交易可以打钱进去吗