Python-Remove';集团';在文本文件中

Python-Remove';集团';在文本文件中,python,Python,这里是Python新手 我一直在使用pythonsbasicopen和write命令写入文本文件,但现在我需要删除该文件中的整个文本组 假设这是levels.txt的内容: [Level 1] 1=Values 2=More Values 3=string [Level 2] 1=lol 2=lolol 我想删除级别2组中的所有内容。我怎么能这么做?如果我使用write,它只会追加内容。您可以尝试使用regex 考虑到您的数据将采用相同的模式: import re with open("le

这里是Python新手

我一直在使用pythonsbasic
open
write
命令写入文本文件,但现在我需要删除该文件中的整个文本组

假设这是
levels.txt
的内容:

[Level 1]
1=Values
2=More Values
3=string

[Level 2]
1=lol
2=lolol

我想删除
级别2
组中的所有内容。我怎么能这么做?如果我使用
write
,它只会追加内容。

您可以尝试使用regex

考虑到您的数据将采用相同的模式:

import re
with open("levels.txt", "r") as f:
     lines = f.read()
     updated_content = re.sub("\s+\[Level 2](\s[0-9]=[a-zA-Z]*)*", '', lines)

with open("levels_replaced.txt", "w") as f:
     f.write(updated_content)

新更新的文件名为levels_replaced.txt。

单向:将内容作为字符串读入,修改该字符串,写入修改后的字符串,覆盖旧内容。您可以显示您尝试的内容吗?听起来您是在
a
模式下打开文件的。文件的格式是
.ini
.toml
还是其他格式?您可以使用类似于
configparser
的库解析文件,删除组,然后将其写回。或者,您可以扫描文件,找到组,并删除所有后续行,直到找到下一个组。您到底是在执行
w
还是
w+
操作?规范的解决方案是将过滤后的输出写入一个临时文件,完成后用新文件替换原始文件。这样可以避免在写入文件时出现错误时丢失数据。我按照您建议的方式对其进行了更改,并将内容保存在较新的文件中。然后,您的代码仍然缺少最后一部分(将原始文件替换为新文件)。提示:这只是一个简单的
os
package函数调用..哦,我不确定regexp是这里最好的工具。。。请记住,OP发布的文本文件只是一个示例,这显然必须适用于可能完全不同的实际数据。最好一行一行地迭代文件,在进入所需节时标记,并跳过行,直到下一节开始。