2

私は常に pattern の直前に新しい行を追加します</IfModule>。Pythonでこれを達成するにはどうすればよいですか。

参考までに、私のファイルは lxml/element ツリーを使用するための 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 に答える