Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Hallo
ich lese einen file ein, und will diesen in einen neuen file umwandeln allerdings nur von einem bestimmten eintrag ab die nächsten 200 lines.
Gibt es da eine geschicktere lösung als die range() mit der bekomme ich es nicht hin..?
Habe es in diesem bsp. über die file.line_num versucht..war aber
nix
import os
import csv
workingdir ="E:\\Programme\\eclipse\\workspace\\learning"
names = os.listdir(workingdir)
try:
outputfile =open("output_selected.csv","w")
except:
print("daten zugriff nicht moeglich")
sys.exit()
for name in names:
fileext = os.path.splitext(name)[-1]
if ".csv" == fileext:
file = csv.reader(open(name),delimiter=";")
for line in file:
if(file.line_num > 1):
month = int(line[2])
day = int(line[3])
if month == 3 and day ==1: # ab hier gerne die nächsten 200 tage
i = file.line_num
for i in range(file.line_num +214):
print (line)
@ali2go: Du solltest niemals einfach nur ``except`` ohne eine konkrete Ausnahme schreiben. So verschluckt diese Ausnahmebehandlung *alles*. Zum Beispiel auch, wenn Du Dich in dem Block bei einem Namen vertippt hättest, den `NameError` oder `AttributeError`, der dann auftritt.
Und dann solltest Du Dir mal das `glob`-Modul anschauen um die Dateinamen der CSV-Dateien zu ermitteln. Dein Vorgehen klappt so auch nicht, weil `os.listdir()` nur die Namen ohne Pfade liefert.
Der Name `file` existiert schon einmal für den Datei-Datentyp, wie man am Syntax-Highlighting hier im Forum erkennen kann. Den sollte man nicht an andere Objekte binden.
`line` ist etwas irreführend, weil die meisten bei dem Konstrukt ``for line in file`` erwarten würden, dass `line` an die Zeilen in einer Textdatei gebunden wird, hier sind es aber die Datensätze in einer CSV-Datei als Listen.
BlackJack hat geschrieben:`line` ist etwas irreführend, weil die meisten bei dem Konstrukt ``for line in file`` erwarten würden, dass `line` an die Zeilen in einer Textdatei gebunden wird, hier sind es aber die Datensätze in einer CSV-Datei als Listen.