2

我总是在 pattern 之前添加我的新行</IfModule>。我怎样才能用 Python 做到这一点。

仅供参考,我的文件不是使用 lxml/元素树的 XML/HTML。IfModule是我.htaccess文件的一部分

我的想法是反转文件并搜索模式,如果发现就在它后面附加我的行。不太确定如何进行。

4

2 回答 2

3

通读文件,当你在输出之前找到你应该输出的行时,然后输出原始行。

with open('.htaccess') as fin, open('.htaccess-new', 'w') as fout:
    for line in fin:
        if line.strip() == '</IfModule>':
            fout.write('some stuff before the line\n')
        fout.write(line)

就地更新文件:

import fileinput

for line in fileinput.input('.htaccess', inplace=True):
    if line.strip() == '</IfModule>':
        print 'some stuff before the line'
    print line,
于 2013-05-31T10:53:00.697 回答
1

可以尝试替换</IfModule>\n</IfModule>

with open('.htaccess', 'r') as input, open('.htaccess-modified', 'w') as output:
    content = input.read()
    output.write(content.replace("</IfModule>","\n</IfModule>"))
于 2013-05-31T11:07:30.260 回答