gpt4 book ai didi

python - 将多个空行减少为单个(Python 方式)

转载 作者:行者123 更新时间:2023-12-04 09:03:56 24 4
gpt4 key购买 nike

如何在每次出现时将文本文件中的多个空行减少为一行?

我已将整个文件读入一个字符串,因为我想跨行结尾进行一些替换。

with open(sourceFileName, 'rt') as sourceFile:
sourceFileContents = sourceFile.read()

这似乎不起作用
while '\n\n\n' in sourceFileContents:
sourceFileContents = sourceFileContents.replace('\n\n\n', '\n\n')

这也没有
sourceFileContents = re.sub('\n\n\n+', '\n\n', sourceFileContents)

将它们全部剥离很容易,但每次遇到它们时,我都想将多个空行减少为一个。

我觉得我很接近,但就是无法让它发挥作用。

最佳答案

这是一个范围,但也许有些行不是完全空白的(即它们只有空白字符,看起来是空白的)。您可以尝试删除换行符之间所有可能的空格。

re.sub(r'(\n\s*)+\n+', '\n\n', sourceFileContents)

编辑:意识到第二个 '+' 是多余的,因为\s* 将在第一个和最后一个之间捕获换行符。我们只想确保最后一个字符绝对是换行符,因此我们不会从包含其他内容的行中删除前导空格。
re.sub(r'(\n\s*)+\n', '\n\n', sourceFileContents)

编辑 2
re.sub(r'\n\s*\n', '\n\n', sourceFileContents)

应该是一个更简单的解决方案。我们真的只想在我们的两个 anchor 换行符之间捕获任何可能的空间(包括中间换行符),这将使单个空白行并将其折叠为两个换行符。

关于python - 将多个空行减少为单个(Python 方式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28901452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com