最符合Python风格的连接缩进换行段落的方法?
看起来有一种比较“Python风”的方法,可以遍历几段带缩进的文本,把它们转换成没有缩进的文本。也就是说,在处理下面这个示例输入的时候:
abc def ghi
jkl mno pqr
stu vwx yz
把它变成:
abc def ghi
jkl mno pqr
stu vwx yz
我想到的最好方法是这样的:
for line in text:
if line.strip() == '':
string += '\n\n'
else:
string += line[3:]
这个方法可以用,但感觉有点笨重。有没有办法完全避免使用if语句呢?我试过用textwrap.dedent()
,但是它似乎会把段落之间的空行去掉,把单词连在一起了。
1 个回答
2
如果文本是一个数组:
"\n".join(line.strip() for line in text)
如果它是一个字符串:
"\n".join(line.strip() for line in text.split("\n"))
它会保留所有的换行符,包括空行和最后的换行符。
>>> text=" asd dfk dfjk\n jdfk dfkj dkfj\n\n dfjk dfjk dfjk\n"
>>> print(text)
asd dfk dfjk
jdfk dfkj dkfj
dfjk dfjk dfjk
>>> print("\n".join(line.strip() for line in text.split("\n")))
asd dfk dfjk
jdfk dfkj dkfj
dfjk dfjk dfjk
>>>