Ich habe versucht, herauszufinden, wie eine Liste zu nehmen und damit eine neue Spalte in meiner CSV-Datei erstellen. Die Idee ist, dass ich eine cvs-Datei habe, ich habe das letzte Element jeder Zeile genommen, um eine Liste zu erstellen, mische es und dann muss ich es am Ende der Datei hinzufügen.Erstellen einer neuen Spalte in einer CSV-Datei aus einer Liste
Einige Probleme, die ich lief, aber "denke" ich habe behoben sind: Python wird keine Liste der Zeichenfolgen anhängen, also konvertierte ich zu int. . Entfernen des Spaltenkopf und das Hinzufügen sie zurück in
Was ich habe, so weit ist:
def fun():
import csv
import random
f = open('CSVFUN.csv')
csv_f = csv.reader(f)
ISI = []
for line in csv_f:
ISI.append(line[4])
ISI = ISI[1:]
random.shuffle(ISI)
delay = [int(i) for i in ISI]
print(delay)
with open('CSVFUN.csv','r') as csvinput:
with open('CSVOUTPUT.csv','w') as csvoutput:
writer = csv.writer(csvoutput, lineterminator='\n')
reader = csv.reader(csvinput)
for row in reader:
if row[0] == 'practicesentence':
writer.writerow(row+['FINALaudioDelay'])
else:
for i in delay:
writer.writerow(row+[delay[i]])
Ich denke, die Frage, die ich jetzt habe, ist, dass meine letzte else-Anweisung durch meine Liste der Verzögerung Iterieren und Hinzufügen jedes Elements der Liste zu jedem Element in einer Reihe. So erhält der Gegenstand 1 8 Verspätungen, der Gegenstand 2 8 Verspätungen und so weiter.
Was ich will, ist für Punkt 1 mit der ersten Verzögerung gehen, Punkt 2 mit der zweiten Verzögerung und so weiter.
Ich fühle mich wie ich bin eine Art von dummen Fehler zu machen, aber ich kann einfach nicht herausfinden, was es ist ....