如何使用 textwrap 缩进第二行?
How to indent second line with textwrap?
我有这个 python 导入文本换行的代码。但是,我需要在前面只有一个数字的所有行前面放一个 space。
line1 = [" S M T W Th F S"]
line2 = ["--------------------"]
line3 = [" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31"]
print(''.join(line1))
print(''.join(line2))
line3Str = ''.join(line3)
wrapper = textwrap.TextWrapper(width=20)
word_list = wrapper.wrap(text=line3Str)
for element in word_list:
print(element)
我曾尝试在 7 和 8 之间放置不同的 space 或为第二行制作不同的列表,但无论我遇到什么问题。
预期输出:(连字符为 space)
-1 ...
-8 ...
15 ...
22 ...
29 ...
实际输出:
-1 ...
8 ... <
15 ...
22 ...
29 ...
如果您希望字符串右对齐打印,您可以使用:
>>> '18'.rjust(2)
'18'
>>> '8'.rjust(2)
' 8'
除了最后一行之外,您希望每一行都右对齐,因此您可以将程序中的最后两行替换为:
for element in word_list[:-1]:
print(element.rjust(20))
print(word_list[-1])
或者,如果你想存储格式化后的字符串列表,你可以在调用wrapper.wrap后格式化word_list:
word_list = wrapper.wrap(text=line3Str)
word_list = [x.rjust(20) for x in word_list[:-1]] + [word_list[-1]]
我有这个 python 导入文本换行的代码。但是,我需要在前面只有一个数字的所有行前面放一个 space。
line1 = [" S M T W Th F S"]
line2 = ["--------------------"]
line3 = [" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31"]
print(''.join(line1))
print(''.join(line2))
line3Str = ''.join(line3)
wrapper = textwrap.TextWrapper(width=20)
word_list = wrapper.wrap(text=line3Str)
for element in word_list:
print(element)
我曾尝试在 7 和 8 之间放置不同的 space 或为第二行制作不同的列表,但无论我遇到什么问题。
预期输出:(连字符为 space)
-1 ...
-8 ...
15 ...
22 ...
29 ...
实际输出:
-1 ...
8 ... <
15 ...
22 ...
29 ...
如果您希望字符串右对齐打印,您可以使用:
>>> '18'.rjust(2)
'18'
>>> '8'.rjust(2)
' 8'
除了最后一行之外,您希望每一行都右对齐,因此您可以将程序中的最后两行替换为:
for element in word_list[:-1]:
print(element.rjust(20))
print(word_list[-1])
或者,如果你想存储格式化后的字符串列表,你可以在调用wrapper.wrap后格式化word_list:
word_list = wrapper.wrap(text=line3Str)
word_list = [x.rjust(20) for x in word_list[:-1]] + [word_list[-1]]