CSV einlesen und Variable random Wert der Liste geben.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
xinflixion1
User
Beiträge: 2
Registriert: Montag 11. Mai 2020, 14:22

Hallo, bin ein Anfänger und stehe vor einem Problem.
Wie kann ich einer Variable jedes Mal beim Starten der Anwendung eine random Information einer CSV zuweisen?
Also:
CSV sieht so aus:
Vorname Nachname Passwort
Aaron Baal Dodfmi1346rgdfgf
Abdul Bahar Dodfmi1346rgdfgf
Abel Bailong Dodfmi1346rgdfgf
...

so und ich will jetzt das jedes Mal meine Variable a einen Wert aus der Vornamen Spalte nimmt, jedes Mal random. Variable b soll einen Wert aus der Nachnamen Spalte nehmen.
Passwort ist in dem Fall eh immer gleich, deswegen definiere ich da einfach eine Variable c mit dem PW.

Wie genau sieht der Code aus?

with open("Daten.csv") as file:
.
.
.

?
Danke für eure Hilfe, habe das Internet durchforstet, nur finde ich nichts passendes und tue mich noch schwer die Zusammenhänge zu verstehen usw.
Hoffe ihr könnt mir helfen.
LG
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

random.choice ist den Freund, zusammen mit dem csv Modul. Damit lädst du die Zeilen ein, und wählst entsprechend oft eine zufällige aus, und daraus die entsprechende Spalte.
xinflixion1
User
Beiträge: 2
Registriert: Montag 11. Mai 2020, 14:22

__deets__ hat geschrieben: Montag 11. Mai 2020, 14:50 random.choice ist den Freund, zusammen mit dem csv Modul. Damit lädst du die Zeilen ein, und wählst entsprechend oft eine zufällige aus, und daraus die entsprechende Spalte.
Hallo, danke für die Antwort, nur gibt er mit jetzt irgendwie nur die ersten Buchstaben der Spalte aus. Code sieht wie folgt aus:

with open("Daten.csv","r") as file:
for i in file:
a = random.choice(i)[0]
b = random.choice (i)
print(a)

Ergebnis:
t
l
3
B
m
d
1
3
,
,
i
r
3
2
3
s
3
a
2
a
©
,
i
4
.... usw.

CSV sieht wiefolgt aus:

https://gyazo.com/f901c5773bbdabb6f1668b026ab6948b

bzw. mit panda:
import pandas

colnames = ['Vorname', 'Nachname']
data = pandas.read_csv('Daten.csv', names = colnames)

a = data.Vorname.tolist()
b = data.Nachname.tolist()

g = random.choice(a)[0]
h = random.choice(b)[0]

print(g)

bekomm ich dann auch nur einen Buschstaben raus, und nicht das ganze Wort.

OK!! Problem gelöst. [0] musste jz noch weg.
Antworten