Итак, у меня есть текстовый файл с несколькими строками:
orange
melon
applez
more fruits
abcdefg
И у меня есть список строк, которые я хочу проверить:
names = ["apple", "banana"]
Теперь я хочу просмотреть всестроки в файле, и я хочу вставить недостающие строки из списка имен, если их нет. Если они присутствуют, то они не должны быть вставлены.
Как правило, это не должно быть сложно, но заботиться обо всех новых строках, и это довольно придирчиво. Это моя попытка:
if not os.path.isfile(fpath):
raise FileNotFoundError('Could not load username file', fpath)
with open(fpath, 'r+') as f:
lines = [line.rstrip('\n') for line in f]
if not "banana" in lines:
lines.insert(0, 'banana')
if not "apple" in lines:
lines.insert(0, 'apple')
f.writelines(lines)
print("done")
Проблема в том, что мои значения не вставляются в новые строки, а добавляются. Кроме того, я чувствую, что мое решение, как правило, немного неуклюже. Есть ли лучший способ сделать это, который автоматически вставляет недостающие строки и заботится обо всех новых строках и тому подобное?