在python中搜索和追加到行

时间:2016-05-30 14:28:53

标签: python regex python-2.7

我试图编写一个程序来编辑配置文件,文本被分解为"段落"

我想搜索文件并找到"更正"段 - 容易用正则表达式做。

但是从那里开始,我想向下几行说出段落/文本块的中间并追加到行尾,或者复制行做一些事情,然后再写回来。< / p>

例如

define object {
       objectName    name_to_check
       useless_info  asdfasdf
       members       member1 member2 .... <- line I want to append to
}

我似乎无法在网上找到这样的方法,我们将非常感谢任何帮助。

2 个答案:

答案 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是我在上面声明的变量。

感谢帮助人们,但如果他们更有效率地做到这一点,那我就全都听了。

相关问题