使用Python计算txt文件中的行数,不包括空行

sam*_*les 8 python

我希望计算一个.txt文件中的行数,它看起来像这样:

apple
orange
pear

hippo
donkey
Run Code Online (Sandbox Code Playgroud)

哪里有空行用来分隔块.基于上面的示例,我正在寻找的结果是五(线).

我怎样才能做到这一点?

作为奖励,知道有多少块/段是很好的.因此,基于上面的例子,那将是两个块.

Lev*_*von 19

non_blank_count = 0

with open('data.txt') as infp:
    for line in infp:
       if line.strip():
          non_blank_count += 1

print 'number of non-blank lines found %d' % non_blank_count
Run Code Online (Sandbox Code Playgroud)

更新:重新阅读问题,OP想要计算非空行..(叹息...感谢@RanRag).(我需要从电脑上休息一下......)

  • 另一种方式:`non_blank_count = sum(如果是line.strip(),则为1(对于open in行("data.txt")) (6认同)
  • 这不起作用.空行返回为""\n"`,而不是"""`. (3认同)
  • Junuxx,不是infp.readlines(),因为它会一次读取所有行,而不是遍历行. (2认同)
  • @Levon:我认为用户想要计算文件中除空行之外的行数.他不想数'空行'的数量. (2认同)
  • @Junuxx点,但我认为逐行方法对于潜在的大文件可能更好,因为`readlines`将整个文件读入列表/内存 (2认同)