Итак, у меня есть текстовый файл с несколькими строками:
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")
Проблема в том, что мои значения не вставляются в новые строки, а добавляются. Также я чувствую, что мое решение, как правило, немного неуклюже. Есть ли лучший способ сделать это, который автоматически вставляет недостающие строки и заботится обо всех новых строках и т.д.?