Как выбрать рандомную строчку из txt файла и исключить её из дальнейшего подбора?

Рейтинг: -1Ответов: 2Опубликовано: 21.08.2023

Я делаю телеграмм бота, который по команде будет выбирать рандомную строчку из файла .txt и присылать юзеру, но чтобы в дальнейшем она не выбиралась (пока я не перезапущу код)

Ответы

▲ 0Принят

Ну так загрузи этот файл, подели его на строки, выбирай рандомную и удаляй:

import random;
f = open("file.txt", "r")
lines = f.read().split("\n")

def getRandom(lines):
    i = random.randint(0, len(lines)-1)
    el = lines[i]
    del lines[i]
    return el
▲ 0

Как вариант

import random


fileName = "q1536876.txt"
with open("q1536876.txt", "r", encoding="UTF-8") as f: 
    lines = f.readlines()

def getRandom(lines):
    i = random.randint(0, len(lines)-1)
    el = lines[i].strip()
    del lines[i]
    return el
    
while lines:
    el = getRandom(lines)
    print(f'{el}') # 
    
print('\nМне нечего вам больше сказать.') #     

введите сюда описание изображения

q1536876.txt

Вас приветствует Fortune Server. Удачи Вам!
Ты должен подумать о завтрашнем дне.
Вы будете удивлены громким шумом.
Модуль QtNetwork содержит классы для сетевого программирования.
У вас может быть почта.
Классы QtNetwork облегчают работу с клиентами и серверами TCP/IP и UDP.
В модуле QtNetwork можно создавать UDP, TCP, HTTP, SSL и FTP-клиенты и серверы.