Удалить строку из txt файла которая будет выведена и имеет определенный текст в конце строки?

У меня есть много строк в txt файле, мне нужно вывести рандомную строку, но чтобы в конце был определенный текст пример: asd79asd98as7dasd89a8sd9 | vip asdsda7sda8s7d0895gs875a | premium

я пишу заданный аргумент вип или премиум и он ищет в txt файле строчку с определенным аргументом

код который у меня есть на данный момент

with open("key.txt", encoding='utf-8') as file:
    lines = file.readlines()

random_line = random.choice(lines).strip()

print(random_line)

Ответы (1 шт):

Автор решения: denisnumb

Вот этой строкой вы выбираете случайный элемент из списка всех строк:

random.choice(lines).strip()

А нужно выбирать из списка с элементами, удовлетворяющими вашему условию. Так что сначала вынесите все подходящие строки в новый список, а уже потом выбирайте случайный элемент из него:

arg = 'vip'

lines_to_choice = []

for line in lines:
    if arg in line:
        lines_to_choice.append(line)

random_line = random.choice(lines_to_choice).strip()

Или проще, через генератор:

random_line = random.choice([line for line in lines if 'vip' in line]).strip()
→ Ссылка