Ich habe die folgende Datei und Code, der absolut gut funktioniert, aber (siehe unten) mit den gleichen Methoden, der zweite Code-Snippet mit der angegebenen Datei, wirft einen Fehler.Anomalie beim Lesen von CSV-Datei Spalte
Arbeits Code
def test():
with open('test.txt','r') as f:
reader=csv.reader(f)
for row in reader:
print(row[0]) #this is column 1
answer=input("Answer?>>")
if answer==row[1]: #this is column 2
print("Yes")
else:
print("No")
Dateiinhalt
a,1
b,2
c,3
Korrekte Arbeits Ausgang
>>> test()
a
Answer?>>1
Yes
b
Answer?>>2
Yes
c
Answer?>>
jedoch der folgende Code nicht funktioniert:
def round():
print("===Summary===")
with open('eventinfo.txt','r',newline="") as f:
reader=csv.reader(f)
for row in reader:
print(row[0])
Dateiinhalt (die zusätzliche Zeile erscheint zwischen den Datensätzen erstellt worden zu sein, während in die Datei zu schreiben)
1,Techhamper,9,9,9,9,9,27
1,Moosecream,8,8,8,8,8,24
1,BizTech,6,6,6,6,6,18
1,Pigacheepot,1,1,1,1,1,3
2,Techhamper,1,1,1,1,1,3
2,Moosecream,2,2,2,2,2,6
Fehler:
print(row[0])
IndexError: list index out of range
Der Code, der in diese Datei schreibt, ist wie folgt:
with open("eventinfo.txt","a") as fo:
writer=csv.writer(fo)
writer.writerow([round,inventor,i1,i2,i3,i4,i5,totalscore])
Für eine Antwort würde ich mich freuen, wenn:
012.351.Eine Lösung/fix des Fehlers in dem Code, der aus der Datei liest (wie die neue Linie Charakter am effektivsten strippen)
Außerdem, was ist der beste Weg zu oder zu umschreiben hinzuzufügen meine ' Schreibe "Code", um den Dateiinhalt effizienter zu erstellen (um so wie der erste zu sein, der nicht den Zeilenumbruch zwischen jedem Datensatz hat) an erster Stelle. obwohl
for row in reader: if len(row) > 0: print(row[0])
Ich sehe nichts in dem Schreiben von Code, der Leerzeilen erzeugen würde,:
Vielen Dank im Voraus
ich entfernte die newline = "" in der Leser-Code und versuchte Newline = Keine, aber keine funktioniert – MissComputing
Ich kann nicht sehen, wie die Leerzeilen erstellt werden entweder ... jemand jemand ??? Und nein, ich benutze leider nur das gleiche Betriebssystem – MissComputing
Ist es möglich, dass 'totalscore' mit einem Zeilenumbruch endet? – Barmar