Seite 1 von 1
					
				.csv File Leerzeile am Ende
				Verfasst: Freitag 17. Januar 2014, 18:41
				von WurzelAusZwei
				Hey,
ich bin python-Neuling und schreibe in meinem Programm in ein .csv-File:
Code: Alles auswählen
with open('results.csv', 'w') as file:
    for text, count in results:
      file.write("%s\t%s\r\n" % (text, count))
Das funktioniert alles bis auf die Leerzeile, die am Dateiende entsteht. Wie kann ich das vermeiden?
Liebe Grüße,
WurzelAusZwei
 
			 
			
					
				Re: .csv File Leerzeile am Ende
				Verfasst: Freitag 17. Januar 2014, 18:49
				von pillmuncher
				Was könnte wohl \r\n bedeuten...?
edit: Sorry, hab die Schleife übersehen. Deswegen: was EyDu weiter unten gesagt hat.
			 
			
					
				Re: .csv File Leerzeile am Ende
				Verfasst: Freitag 17. Januar 2014, 18:54
				von EyDu
				Hallo und willkommen im Forum!
Ganz einfach: du schreibst die letzte Zeile eben ohne einen Zeilenumbruch 

 Du könntest zum Beispiel testen, ob es sich bei der aktuellen Zeile schon um die letzte handelt. Den Index zu jedem Eintrag erhältst du mittels enumerate-Funktion:
Du könntest aber auch, mittels Slicing, alles bis auf den letzten Eintrag schreiben. Für den letzten Eintrag fügst du dann noch eine extra write-Zeile nach der for-Schleife an (Hinweis: sie vorsichtig mit leeren Listen). Und wenn es nur wenige Daten sind, dann bietet sich vielleicht die join-Methode auf strings an:
Oder die beste Lösung: du verwendest das bereits vorhandene csv-Modul, dann musst du dir um nichts mehr Sorgen machen.
 
			 
			
					
				Re: .csv File Leerzeile am Ende
				Verfasst: Freitag 17. Januar 2014, 18:55
				von BlackJack
				Wobei ich mich frage was an der Zeile das Problem ist.  Ich sehe eher Probleme wenn die letzte Zeile *nicht* mit einem Zeilenende abgeschlossen ist.
Für CSV-Dateien gibt es übrigens in der Standardbibliothek auch ein Modul.  Heisst `csv`. 

 
			 
			
					
				Re: .csv File Leerzeile am Ende
				Verfasst: Freitag 17. Januar 2014, 19:04
				von WurzelAusZwei
				EyDu hat geschrieben:Hallo und willkommen im Forum!
Ganz einfach: du schreibst die letzte Zeile eben ohne einen Zeilenumbruch 

 Du könntest zum Beispiel testen, ob es sich bei der aktuellen Zeile schon um die letzte handelt. Den Index zu jedem Eintrag erhältst du mittels enumerate-Funktion:
Du könntest aber auch, mittels Slicing, alles bis auf den letzten Eintrag schreiben. Für den letzten Eintrag fügst du dann noch eine extra write-Zeile nach der for-Schleife an (Hinweis: sie vorsichtig mit leeren Listen). Und wenn es nur wenige Daten sind, dann bietet sich vielleicht die join-Methode auf strings an:
Oder die beste Lösung: du verwendest das bereits vorhandene csv-Modul, dann musst du dir um nichts mehr Sorgen machen.
 
Hey,
alles klar, danke! 
