Wie gebe ich zufällige Zeilen aus einer Textdatei aus (discord bot)?
Weiß jemand, wie ich eine oder mehrere zufällige Zeilen aus einer Textdatei per Befehl ausgeben kann?
Wenn ich also einen Befehl eingebe, soll der Bot eine bestimmte Anzahl von Zeilen aus einer Textdatei abrufen und ausgeben. Die Zeilen sollen aber zufällig ausgewählt werden. Also nicht von oben nach unten oder so etwas in der Art.
Momentaner Stand:
bot = commands.Bot(command_prefix="!")
@bot.command()
async def getinfo(ctx):
with open('info.txt', 'r') as file:
data = file.read()
await ctx.channel.send(data)
Momentan verwende ich discord.py bzw Python, aber wenn das mit dieser Programmiersprache nicht möglich ist, würde ich auch eine andere verwenden.
1 Antwort
Lese alle Zeilen der Datei und füge sie in eine Liste ein:
with open(filename, "r") as file:
lines = file.readlines()
Danach kannst du die Länge der Liste ermitteln, einen Zufallsindex berechnen und den entsprechenden Eintrag aus der Liste holen.
import random
""" ... """
index = random.randint(0, len(lines) - 1)
value = lines[index].rstrip()
Oder du verwendest direkt random.choice:
import random
""" ... """
value = random.choice(lines).rstrip()
Ja. Entweder du erstellst ein Tupel:
some_tuple = some_value, some_other_value
oder du legst eine Liste an, in der du alle Werte sammelst, die du brauchst.
some_list = []
some_list.append(some_value)
Ist es möglich, mehrere Einträge gleichzeitig in einer Variablen zu speichern und zu nutzen?