2017-02-13 2 views
1

Ich habe diesen Code, liest Zeilen in einer Textdatei und zählt die Zeichen und stoppt, sobald es 1000 Zeichen oder mehr erreicht. Wie kann ich es ändern, so dass es keine Zeichen in einer Zeile zählt, die mit einem # -Zeichen beginnt?Wie zählt man NICHT die Zeichen in Zeilen, die mit '#' in einer Textdatei mit Python beginnen

infile = open('word_count.tst', 'r') #word_count is just a sample file. 
lines = infile.readlines() 
char_count = 0 
for line in lines: 
    char_count = char_count + len(line) 
    if char_count >= 1000: 
     break 
print("File has %d characters" % (char_count)) 
+0

einen Haken hinzufügen, wenn 'line.startswith Überprüfung ('#')' –

Antwort

0

Fügen Sie einfach if line[0] != "#": zum Code:

f = open('word_count.txt', 'r') #word_count is just a sample file. 
char_count = 0 
for line in f: 
    if line[0] != "#": 
     char_count = char_count + len(line) 
     if char_count >= 1000: 
      break 
print("File has %d characters" % (char_count)) 
1

Öffnen Sie die Datei mit with Anweisung. Lesen Sie nicht alle Zeilen, sondern iterieren Sie einfach über das Dateiobjekt. Verwenden Sie kurze Hand für a = a + b als a += b. Überprüfen Sie, ob die Zeile mit mit der Funktion string.startswith() beginnt und negieren Sie sie mit not, um den gewünschten Zustand zu erhalten.

Sie können es wie so:

char_count = 0 
with open('word_count.tst', 'r') as f: 
    for l in f: 
     if not l.startswith('#'): 
      char_count += len(l) 
      if char_count >= 1000: 
       break 
Verwandte Themen