問題
對很長的字符串,以指定的列寬將它們重新格式化。
解決方案
使用 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."
輸出時每行80個字符
import textwrap
print(textwrap.fill(s, 80))
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.
輸出時每行40個字符
import textwrap
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.
首行縮進(jìn)4個空格
import textwrap
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.
非首行縮進(jìn)4個空格
import textwrap
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 模塊對于字符串打印是非常有用的,特別是當(dāng)你希望輸出自動匹配終端大小的時候。 你可以使用 os.get_terminal_size() 方法來獲取終端的大小尺寸。比如:
import os
print(os.get_terminal_size().columns)
80