0

複数の正規表現の一致を実行しているファイルがたくさんあり、それらを削除しています。正常に動作していますが、一致するものがあると、毎回手動で削除している行が下部に重複して表示されます。どうしたの?

for year in range (2004,2009):
    path="/foo/bar/"+str(year)+"/"
    dirs = os.listdir(path)
    for i in range(0,len(dirs)):
        original_file = os.path.join(path, dirs[i])
        f=open(original_file,"r+")
        text=f.read()
        text=re.sub('FY91/92','',text) 
        f.seek(0)
        f.write(text)
        f.close()
4

2 に答える 2

1

次のように変更するのはどうですか。

text=open(original_file).read()
text=re.sub('FY91/92','',text) 
f = open(original_file, 'w')
f.write(text)
f.close()

これにより、ファイルの既存のコンテンツが上書きされます。

于 2012-05-03T09:25:38.720 に答える
0

truncate()以前の方法を使用するclose()

于 2012-05-03T09:37:13.677 に答える