metalexs
@metalexs

Не могу понять как правильно определить переменную в файле и сделать запись?

Не могу понять как правильно сделать так, чтобы определить наличие в файле "id.txt", "ID" взятый из переменной "a" и если в строках его нет, то добавить запись. Я сделал вот такую конструкцию, но в любом случает срабатывает else.
a = input("Введите id: ")

   with open('id.txt') as f:
        n = 0
        for line in f:
            n += 1
            if a in line:

                print(a, "есть совпадение", n)
            
            else:
                print("нет совпадения")
                file = open("id.txt", "a")
                file.write(f"{a} \n")
                file.close()


Помогите разобраться.
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Вообще, я бы советовал использовать как минимум json, который можно преобразовать в структуры данных python. Ну или базу данных. Для таких случаев они больше подходят.
Но тут уже решайте сами...
Касательно вопроса:
Ну, давайте подумаем логически. Есть файл вида:
22
12
146
34

Искомый id - 146. То есть 3-я строка. Разумеется, что поскольку ни 1, 2 и 4 строки не подходят - будет срабатывать else.
Выход из этой ситуации - вынести запись в файл из цикла в отдельный блок условия. Я бы, например, добавил булеву переменную перед циклом со значением False и в блоке if a in line: менял на True
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы