tut mir leid, ein etwas kryptischer Titel - wieder mal.
Was ich machen möchte ist folgendes: Ich möchte einem Programm verschiedene CSV-Formate zugänglich machen. Außerdem soll das Programm keinen Unterschied machen, ob eine solche Datei auf einem Windowsrechner oder einer UNIX-Maschine erstellt worden ist. Konkret liegt das Problem in den verschiedenen Zeilenenden.
Meine Frage: Kann man eine Datei öffnen, best. Charaktere austauschen und dann weitermachen OHNE die Datei wieder auf Platte auszuschreiben? Sonst brauche ich temporäre Dateien. Das mache ich auch schon, möchte aber gerne darauf verzichten.
Bisher sieht mein Code so aus (ohne Errorhandling und sonstigen Schnickschnack):
Code: Alles auswählen
f = open(fname,'r')
#create temporary file
tmp = os.tmpfile()
to_replace = chr(13) #replace the MS carriage return character
fill_in = chr(10) #fill in the UNIX line end character
for x in f.read():
if x == to_replace:
tmp.write(x.replace(to_replace,fill_in))
else:
tmp.write(x)
f.close()
tmp.seek(0)
#einfach ausgeben ist natürlich nicht was ich mache,
#aber es zeigt was man machen könnte
for line in tmp: print line
tmp.close()
Danke,
Christian