Удалить строку из 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()