Mit dem folgenden kleinen Programm wird eine Datei eingelesen und in verschiedenen Formen wieder ausgegeben.
# Klasse um Datei zu laden und
class FileReader():
# Initialisierung der Klasse
def __init__(self, file):
# Definition der Liste (gehört nur der Klasse)
self.importedFile = []
# Datei öffnen mit "with open" -> Datei wird automatisch geschlossen
with open(file,"r") as openfile:
# Zeile für Zeile durchgehen
for line in openfile:
# Zeileninhalt (ohne Steuerzeichen) nacheinander in die Liste einfügen
self.importedFile.append(line.strip())
# Methode zum abrufen der Liste
def getfile(self):
return self.importedFile
# Klasse um csv einzulesen
class CsvReader(FileReader):
# Initialisierung der Klasse
def __init__(self, file):
# super() greift auf die überschriebenen geerbten Methoden der Klasse FileReader zu
# super() wird in untergeordneten Klassen (mit Mehrfachvererbung) verwendet,
# dadurch kann auf Funktionen der Klasse zugegriffen werden (z.B. getFile() ).
super().__init__(file)
# Aufruf der Methode
self.transformToCsv()
def transformToCsv(self):
# neue Liste initialisieren
csv = []
# Zeile für Zeile durchgehen
for line in self.importedFile:
# jedes ELement in neue Liste
entity = []
# entfernen von Steuerzeichen und Trennung der Wörter beim Komma
splitted = line.strip().split(",")
# Variablen aus den Daten ziehen
firstName = splitted[1][1:]
surname = splitted[0]
# Daten in die "untergeordnete" Element-Liste eintragen
entity.append(firstName + ", " + surname)
# Daten in die csv-Liste schreiben
csv.append(entity)
# Rückgabe der gesamten csv-Liste
return csv
def getfile(self):
# Methode zum abrufen der csv-Liste
return self.transformToCsv()
test = FileReader("testfile.txt").getfile()
print(test)
# Ausgabe: ['Nachname, Vorname', 'Meister, Ingo', 'Schuster, Manfred', 'Mueller, Hans', 'Schmidt, Klaus']
test2 = CsvReader("testfile.txt").getfile()
print(test2)
# Ausgabe: [['Vorname, Nachname'], ['Ingo, Meister'], ['Manfred, Schuster'], ['Hans, Mueller'], ['Klaus, Schmidt']]