我试图编写一个程序来编辑配置文件,文本被分解为"段落"
我想搜索文件并找到"更正"段 - 容易用正则表达式做。
但是从那里开始,我想向下几行说出段落/文本块的中间并追加到行尾,或者复制行做一些事情,然后再写回来。< / p>
例如
define object {
objectName name_to_check
useless_info asdfasdf
members member1 member2 .... <- line I want to append to
}
我似乎无法在网上找到这样的方法,我们将非常感谢任何帮助。
答案 0 :(得分:0)
您可以将文件读入字符串,然后使用字符串拆分。我们假设您有三行:
config item one: True
config item two: "A"
config item three: 42
使用此问题的答案How to split a string into a list?和&#34; \ n&#34;用于分隔行的分隔符,您将获得3个字符串的列表,每个字符串都是您文件中的一行。
搜索并更改要编辑的行,然后将所有行写入文件(覆盖现有文件)。如何将字符串列表写入文件:Writing a list to a file with Python
答案 1 :(得分:0)
所以我设法让某些东西工作(只需要添加一个循环来将Ar写入文件)
Ar = []
file = open("path/To/File", "r")
for line in file:
Ar.append(line)
pattern = "(\s*hostgroup_name\s*"+host_group+"\s*)"
p1 = re.compile(pattern)
for i, line in enumerate(Ar):
#print(line)
if p1.match(line):
#print(line)
Ar[i+2] = Ar[i+2][:-1]
Ar[i+2] += " " + host + "\n"
print(Ar[i+2])
break
host和host_group是我在上面声明的变量。
感谢帮助人们,但如果他们更有效率地做到这一点,那我就全都听了。