2.16 以指定列寬格式化字符串

2018-02-24 15:26 更新

問題

你有一些長字符串,想以指定的列寬將它們重新格式化。

解決方案

使用 textwrap 模塊來格式化字符串的輸出。比如,假如你有下列的長字符串:

s = "Look into my eyes, look into my eyes, the eyes, the eyes, \
the eyes, not around the eyes, don't look around the eyes, \
look into my eyes, you're under."

下面演示使用 textwrap 格式化字符串的多種方式:

>>> import textwrap
>>> print(textwrap.fill(s, 70))
Look into my eyes, look into my eyes, the eyes, the eyes, the eyes,
not around the eyes, don't look around the eyes, look into my eyes,
you're under.

>>> print(textwrap.fill(s, 40))
Look into my eyes, look into my eyes,
the eyes, the eyes, the eyes, not around
the eyes, don't look around the eyes,
look into my eyes, you're under.

>>> print(textwrap.fill(s, 40, initial_indent='    '))
    Look into my eyes, look into my
eyes, the eyes, the eyes, the eyes, not
around the eyes, don't look around the
eyes, look into my eyes, you're under.

>>> print(textwrap.fill(s, 40, subsequent_indent='    '))
Look into my eyes, look into my eyes,
    the eyes, the eyes, the eyes, not
    around the eyes, don't look around
    the eyes, look into my eyes, you're
    under.

討論

textwrap 模塊對于字符串打印是非常有用的,特別是當你希望輸出自動匹配終端大小的時候。你可以使用 os.get_terminal_size() 方法來獲取終端的大小尺寸。比如:

>>> import os
>>> os.get_terminal_size().columns
80
>>>

fill() 方法接受一些其他可選參數(shù)來控制tab,語句結(jié)尾等。參閱 textwrap.TextWrapper文檔 獲取更多內(nèi)容。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號