Anzahl der Zeilen in einer TXT-Datei mit Python ohne Leerzeilen zählen

7

Ich möchte die Anzahl der Zeilen in einer TXT-Datei zählen, die ungefähr so ​​aussieht:

%Vor%

Wo Leerzeilen zum Trennen von Blöcken verwendet werden. Das Ergebnis, das ich suche, ist, basierend auf dem obigen Beispiel, fünf (Zeilen).

Wie kann ich das erreichen?

Als Bonus wäre es schön zu wissen, wie viele Blöcke / Absätze es gibt. Also, basierend auf dem obigen Beispiel, wären das zwei Blöcke.

    
samiles 20.05.2012, 12:51
quelle

8 Antworten

19
%Vor%

UPDATE: Lies die Frage erneut, OP möchte nicht leere Zeilen zählen. (seufz .. danke @RanRag). (Ich brauche eine Pause vom Computer ...)

    
Levon 20.05.2012, 12:53
quelle
3

Ein kurzer Weg, um die Anzahl der nicht leeren Zeilen zu zählen, könnte sein:

%Vor%     
betabandido 20.05.2012 13:09
quelle
1
%Vor%     
Revanth 28.03.2016 02:43
quelle
0

Keine leeren Zeilen Zähler:

%Vor%

Blockzähler:

%Vor%     
Akavall 20.05.2012 13:15
quelle
0

Dieser kleine Python-Code sollte Ihr Problem lösen:

%Vor%     
Joel Cornett 20.05.2012 14:51
quelle
0

So hätte ich es gemacht:

%Vor%

readlines() erstellt eine Liste aller Zeilen in der Datei und dann können Sie einfach die Zeilen nehmen, die mindestens etwas enthalten. Sieht für mich ziemlich einfach aus!

    
ShivamMax 04.09.2013 19:11
quelle
0

Ziemlich gerade! Ich glaube

%Vor%     
Jashu 26.02.2014 12:43
quelle
0

Wenn man bedenkt, dass die Leerzeilen nur das neue Zeilenzeichen enthalten, wäre es viel schneller, str.strip nicht aufzurufen, was eine neue Zeichenkette erzeugt, sondern stattdessen mit str.isspace prüft, ob die Zeile nur Leerzeichen enthält.

%Vor%

Demo:

%Vor%

Sie können str.isspace weiterhin mit itertools.groupby verwenden, um die Anzahl zu zählen von zusammenhängenden Zeilen / Blöcken in der Datei:

%Vor%     
Moses Koledoye 13.08.2017 16:45
quelle

Tags und Links