Datei durch andere Datei ersetzen
Verfasst: Freitag 17. Juli 2020, 07:52
Hallo,
ich aktualisiere eine Datei namens test.csv, indem ich den kompletten Inhalt einlese, einen Schleifendurchlauf durchführe, und den Inhalt anschließend in eine neue Datei namens temp.csv speichere.
Nach diesem Vorgang liegen nun zwei Dateien in meinem Ordner, die alte Datei test.csv und die neue Datei temp.csv.
Was ist jetzt die eleganteste Lösung, damit am Ende nur eine Datei names test.csv übrig bleibt (die Datei test.csv muss natürlich den neuen Inhalt aus temp.csv bekommen)
OK - ich könnte wie folgt vorgehen:
1) test.csv löschen (os.remove)
2) temp.csv in test.csv umbenennen (os.rename)
Das Problem: ich muss sicherstellen, dass die Umbenennung erst dann stattfindet, wenn die alte Datei test.csv tatsächlich schon gelöscht wurde.
Ja, ich könnte die Überprüfung "existiert die Datei noch?" mittels Schleife durchführen, jedoch scheint es nicht die eleganteste Lösung zu sein.
Hat jemand eine Idee?
PS: ich nutze das csv- und os-Modul, und möchte ungern auf weitere Module zurückgreifen.
ich aktualisiere eine Datei namens test.csv, indem ich den kompletten Inhalt einlese, einen Schleifendurchlauf durchführe, und den Inhalt anschließend in eine neue Datei namens temp.csv speichere.
Nach diesem Vorgang liegen nun zwei Dateien in meinem Ordner, die alte Datei test.csv und die neue Datei temp.csv.
Was ist jetzt die eleganteste Lösung, damit am Ende nur eine Datei names test.csv übrig bleibt (die Datei test.csv muss natürlich den neuen Inhalt aus temp.csv bekommen)
OK - ich könnte wie folgt vorgehen:
1) test.csv löschen (os.remove)
2) temp.csv in test.csv umbenennen (os.rename)
Das Problem: ich muss sicherstellen, dass die Umbenennung erst dann stattfindet, wenn die alte Datei test.csv tatsächlich schon gelöscht wurde.
Ja, ich könnte die Überprüfung "existiert die Datei noch?" mittels Schleife durchführen, jedoch scheint es nicht die eleganteste Lösung zu sein.
Hat jemand eine Idee?
PS: ich nutze das csv- und os-Modul, und möchte ungern auf weitere Module zurückgreifen.