Da fehlt noch einiges an Verständnis.
Der Aufruf von os.path.dirname ist sinnfrei.
os.path.dirname gibt dir einen Pfad zurück. Du rufst aber die Funktion einfach auf ohne den Rückgabewert zu verwenden. Es sieht ohnenih nicht so aus, als bräuchtest du die Funktion hier, da dein Parameter ja bereits den passenden Pfad enthält.
Der Pfad soll vermutlich den Pfad darstellen in dem die zu öffnenden Dateien liegen. In dem Fall solltest du Pfad und Dateinamen mit der passenden Funktion verketten und Die Datei auch wirklich dort öffnen wo du möchtest.
Code: Alles auswählen
filename_in = os.path.join(r"f:\Projekt\Python Hilfe", 'teilen.txt')
datei_in= open(filename_in, "r")
#oder
filename_in = os.path.join('f:\\', 'Projekt', 'Python Hilfe', 'teilen.txt')
datei_in= open(filename_in, "r")
Dann erfindest du aus heiterem Himmel ein
columns. Du hast erst einmal keine Spalten, du hast nur eine einzelne Zeile. Der Code wäre dort also:
line nimmt jetzt innerhalb der Schleife jeweils den Inhalt der jeweils eingelesenen Zeile an.
Diese Zeile musst du jetzt in ihre Bestandteile aufspalten. Dafür verfügen Strings über die Methode
split. Ohne Parameter aufgerufen zerlegt diese Methode den String anhand der Leerzeichen.
Jetzt musst du die Werte in
columns nur noch in Zahlen konvertieren und kannst deine Berechnung durchführen.
Die Dateien solltest du übrigens mit folgendem Konstrukt öffnen:
Code: Alles auswählen
with open(filename, 'r') as input_data:
for line in input_data:
[...]
Damit wird die Datei am Ende des Blocks automatisch geschlossen (du brauchst kein
close mehr) und es ist völlig egal ob zwischendrin aine Exception auftrat oder nicht.
Für das Einlesen könntest du alternativ auch das csv-Modul verwenden.
Und jetzt erkläre bitte noch, wofür dein
i gut sein soll.
Wie gesagt, dir fehlen Grundlagen. Das
Tutorial kennst du?