Sieht leider nicht gut aus und ist auch bestimmt total unübersichtlich aber ich wollte mal schauen was er denn nun ausgibt für die Funktion parse_csv bzw den code der dadrin steht. Da ich leider echt nicht weiter weiss ist hier mein letzter Stand, über jede Hilfe wäre ich echt mega dankbar. Wenn ich den Code aus der parse_csv einzeln benutze und auf eine Datei anwende gibt er die Datei richtig aus:
Code: Alles auswählen
import csv
class Table:
def __init__(self, titles=None, cols=None, filename = None):
if filename is None:
self.titles = titles
self.cols = cols
self.filename = None
else:
self.filename = filename
self.parse_csv(filename)
def __str__(self):
if self.filename == None:
return (str(self.titles) +', '+ str(self.cols))
else:
return str(self.parse_csv(self.filename))
def __eq__(self, other):
if self.filename == None:
return (self.titles, self.cols) == (other.titles, other.cols)
else:
return self.parse_csv(self.filename) == (other.titles, other.cols)
def parse_csv(self, filename):
a=open(filename,'r')
timel,templ,count=[],[],0
final=[]
for l in a:
c=l.split(',')
if count >=1:
timel.append(float(c[0]))
templ.append(float(c[1]))
if count==0: #this is just append the header in the fianl list
c[1]=c[1][:-1]
final.append(c)
count+=1
final.append([timel,templ])
final=tuple(final)
return final
my_table1 = Table(["title1", "title2"], [["l1"], ["l2"]])
print(my_table1)
assert my_table1.titles[0] == "title1"
assert my_table1.titles[1] == "title2"
assert my_table1.cols[0] == ["l1"]
assert my_table1.cols[1] == ["l2"]
my_table2 = Table(["title1", "title2"], [["l1"], ["l2"]])
assert my_table2 == my_table1
titles = ["Zeit", "Temperatur"]
filename1 = "simple_example.csv"
my_table3 = Table(titles, [[0.0, 3.0, 6.0, 9.0], [15.2, 16.1, 14.8, 20.2]])
my_table3_parsed = Table(filename = "simple_example.csv")
print(my_table3)
print(my_table3_parsed)
assert my_table3_parsed == my_table3
Die Ausgabe sieht dann so aus:
Code: Alles auswählen
['title1', 'title2'], [['l1'], ['l2']]
['Zeit', 'Temperatur'], [[0.0, 3.0, 6.0, 9.0], [15.2, 16.1, 14.8, 20.2]]
([[], []],)
---------------------------------------------------------------------------
AssertionError Traceback (most recent call last)
<ipython-input-225-53aa68bfdaf6> in <module>()
60 print(my_table3_parsed)
61
---> 62 assert my_table3_parsed == my_table3
AssertionError: