gpt4 book ai didi

python3.4如何删除模式字符串匹配后的一段文本

转载 作者:行者123 更新时间:2023-12-01 04:43:24 25 4
gpt4 key购买 nike

我有一个文件,需要删除字符串模式匹配后面的文本部分。

文件中的文本:

zone "domain1.com" {
type slave;
masters {10.10.10.1;};
allow-notify{10.10.10.1;};
allow-transfer {trusted;};
key-directory "/usr/local/etc/namedb/";
file "/usr/local/etc/namedb/domain1.com.external.signed";
};
zone "domain2.com" {
type slave;
masters {10.10.10.1;};
allow-notify{10.10.10.1;};
allow-transfer {trusted;};
key-directory "/usr/local/etc/namedb/";
file "/usr/local/etc/namedb/domain2.com.external.signed";
};

如何搜索domain2,然后删除该行及其下面的接下来的 7 行?将会有很多域。

最佳答案

您可以写信给 NamedTemporaryFile ,每次 "domain2.com"itertool.islice 一致时跳过 7 行,使用shutil.move替换末尾的原始文件:

from tempfile import NamedTemporaryFile
from itertools import islice
from shutil import move

with open("test.txt") as f, NamedTemporaryFile("w",dir=".", delete=False) as temp:
for line in f:
if '"domain2.com"' in line:
list(islice(f, 7))
else:
temp.write(line)

move(temp.name,"test.txt")

输出:

 zone "domain1.com" {
type slave;
masters {10.10.10.1;};
allow-notify{10.10.10.1;};
allow-transfer {trusted;};
key-directory "/usr/local/etc/namedb/";
file "/usr/local/etc/namedb/domain1.com.external.signed";
};

delete=False 表示文件不会被删除,如果过程中断则不会向原始文件写入任何内容,最后我们使用 move(temp.name,"test .txt") 覆盖原始文件。

关于python3.4如何删除模式字符串匹配后的一段文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30033161/

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