2016-06-20 13 views
0

Ich versuche, eine CSV-Datei zu schreiben, die Listen mit Längen enthält, die abhängig von der Dateneingabe eines Benutzers dynamisch variieren. Ich bin OK mit dem Drucken der Listen, aber ich muss auch eine Kopfzeile an der Spitze, die etwa wie folgt aussehen sollte:Python CSV - Dynamische Anzahl der Zeilen basierend auf einer Variablen

Generation :, 1, 2, 3, 4, 5, (etc - Count up Anzahl der Generationen.)

Ich habe eine Variable für die Anzahl der Generationen, die vom Benutzer festgelegt wird, das heißt numGens() - kann ich das verwenden, um die richtige Anzahl von Überschriften zu schreiben? Das erste Feld muss "Generation:" sein. Es folgt die richtige Anzahl der generierten Generationen.

Entschuldigung, wenn ich mich wiederholt habe! Vielen Dank.

EDIT - den entsprechenden Code hinzugefügt!

def exportData(): 
    #naming and namecheck here 
    with open('testthing.csv','w', newline='') as csvfile: 
      spamwriter = csv.writer(csvfile, delimiter=' ', 
            quotechar='|', quoting=csv.QUOTE_MINIMAL) 
      spamwriter.writerow(["Generation:",]) 
      spamwriter.writerow(["Juveniles:", juvOverGens]) 
      spamwriter.writerow(["Adults:", juvOverGens]) 
      spamwriter.writerow(["Seniles", juvOverGens]) 

juvOverGens (und es soll für die Erwachsene verschiedene Namen und senilen aber das ist irrelevant, weil sie immer gleich lang sein würde) ist eine Liste, die irgendwo zwischen 5 und 25 Werten in der Länge ist.

+1

Bitte fügen Sie den Code, den Sie denken, für uns relevant ist Ihnen zu helfen, kommen näher an Ihre Probleme Lösung - das ist oft einfacher, als es in Worte ;-) – Dilettant

+1

Leider beschreibt. Jetzt hinzugefügt. – CrackersL01

+0

Können Sie auch eine Stichprobe der Art von Daten anzeigen, über die Sie sprechen, und wie sich diese Kopfzeile auf das Format bezieht? – BrenBarn

Antwort

0
import csv 

numGens = 4 

header = ['Generation:'] 

for n in range(numGens): 
    header.append(str(n + 1)) 

with open('testthing.csv', 'w', newline='') as csvfile: 
    spamwriter = csv.writer(csvfile, delimiter=',', 
          quotechar='|', quoting=csv.QUOTE_MINIMAL) 
    spamwriter.writerow(header) 
+0

Ich habe gerade getestet, und ich bekomme den folgenden Fehler: Zeile 89, in ExportData für n im Bereich (numGens): TypeError: 'Funktion' Objekt kann nicht als eine ganze Zahl interpretiert werden – CrackersL01

+0

Muss Code sein, du bist nicht zeigt dann. – Chris

Verwandte Themen