Я пытаюсь заменить текст в текстовом файле, читая каждую строку, тестируя его, а затем записывая, если его нужно обновить. Я НЕ хочу сохранять как новый файл, так как мой script уже сначала выполняет резервное копирование файлов и работает с резервными копиями.
Вот что у меня есть до сих пор... Я получаю fpath из os.walk(), и я гарантирую, что var pathmatch возвращается правильно:
fpath = os.path.join(thisdir, filename)
with open(fpath, 'r+') as f:
for line in f.readlines():
if '<a href="' in line:
for test in filelist:
pathmatch = file_match(line, test)
if pathmatch is not None:
repstring = filelist[test] + pathmatch
print 'old line:', line
line = line.replace(test, repstring)
print 'new line:', line
f.write(line)
Но то, что заканчивается, заключается в том, что я получаю только несколько строк (обновляется правильно, заметьте, но повторяется ранее в файле) исправлено. Я думаю, что это вопрос о проблеме, afaict.
* Также: я хотел бы знать, как только заменить текст на первый экземпляр соответствия, например, я не хочу сопоставлять отображаемый текст, только базовый href.