12

次のような .txt ファイルの行数を数えたいと思います。

apple
orange
pear

hippo
donkey

ブロックを区切るために使用される空白行がある場所。上記のサンプルに基づいて、私が探している結果は 5 (行) です。

どうすればこれを達成できますか?

おまけとして、ブロック/段落の数を知っておくとよいでしょう。したがって、上記の例に基づくと、それは 2 つのブロックになります。

4

10 に答える 10

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

更新:質問を読み直してください。OPは非空白行を数えたい..(ため息.. @RanRagに感謝します)。(私はコンピュータから休憩が必要です...)

于 2012-05-20T12:53:00.147 に答える
3

非空白行の数を数える簡単な方法は次のとおりです。

with open('data.txt', 'r') as f:
    lines = f.readlines()
    num_lines = len([l for l in lines if l.strip(' \n') != ''])
于 2012-05-20T13:09:37.820 に答える
2
sum([1 for i in open("file_name","r").readlines() if i.strip()])
于 2016-03-28T02:43:31.747 に答える
0

Pythonコードのこのビットは、問題を解決するはずです。

with open('data.txt', 'r') as f: 
    lines = len(list(filter(lambda x: x.strip(), f)))
于 2012-05-20T14:51:21.470 に答える
0

これは私がやった方法です:

f = open("file.txt")
l = [x for x in f.readlines() if x != "\n"]

print len(l)

readlines()ファイル内のすべての行のリストを作成し、少なくとも何かが含まれている行を取得できます。私にはかなり簡単に見えます!

于 2013-09-04T19:11:28.333 に答える
0

かなりストレート!私は信じている

f = open('path','r')
count = 0
for lines in f:
    if lines.strip():
        count +=1
print count
于 2014-02-26T12:43:26.810 に答える
0

空白行ではない カウンター:

lines_counter = 0

with open ('test_file.txt') as f:
    for line in f:
        if line != '\n':
            lines_counter += 1

ブロックカウンター:

para_counter = 0
prev = '\n'

with open ('test_file.txt') as f:
    for line in f:
        if line != '\n' and prev == '\n':
            para_counter += 1
        prev = line
于 2012-05-20T13:15:49.380 に答える