1

</END>ファイルに空白行が含まれる可能性があるで終了するファイルがあります</END>。空行は気にしません。しかし、空白でない最後の単語は</END>. の前に数行追加する必要があります</END>。私はこれをやったfileinput

for each_line in fileinput.input("testme",inplace=True):
    if each_line.strip() == '</END>':
        print "\nAdding ^.*"+source_resource+".*$ \\"
        print destination+" [R="+http_code+",L]"
    print each_line,

一部の専門家は、これを でどのように達成できるかアドバイスしてもらえますかseekseekカーソルの配置には非常に便利だと思います。

4

2 に答える 2

1

1 つはインプレース書き込みを使用し、もう 1 つはファイルのコピーを作成することを意味します。

2 番目のアプローチは、実装が非常に簡単です。

with open(src_path, "r") as in_f, open(dest_path, "w") as out_f:
    for line in in_f:
        if line == "</END>":
            out_f.write("whatever you want")
        out_f.write(line)
        out_f.write('\n')

最初のアプローチでは、最後の行を検出して最初に戻る必要があります。

last = 0
with open(src_path, "r+") as f:
    for line in f:
        if line == "</END>":
            f.seek(last)
            f.write("whatever you want"
            f.write(line) # rewrite the line
            f.write('\n')
        last = f.tell() # This will give us the end of the last line

私は頭でこのコードを書いたので、いくつかのエラーがあるかもしれませんが、あなたはアイデアを得ました.

于 2013-06-12T11:23:53.540 に答える