如何计算和打印文件中每行的单词数?

时间:2014-06-10 10:06:40

标签: python python-2.7

我想计算文件中每行中的总字数并打印出来。我试过

with codecs.open('v.out','r',encoding='utf-8') as f:
    for line in f.readlines():
        words = len(line.strip(' '))
        print words

输入文件是:

hello 
try it
who knows
it may work

我得到的输出是:

6
7
10
12

但我需要的是:

1 
2 
2
3

我可以使用任何功能吗?我必须在文件中打印每行的第一个单词,同样将行的中间单词和最后一个单词打印成单独的文件。

2 个答案:

答案 0 :(得分:4)

从末端剥离空格,而不是分割单词。你现在正在计算其余的字符,而不是单词。

改为使用str.split()

words = len(line.split())

不需要参数,或使用None;它将从末尾剥离空白,并在任意宽度的空格上分割,为您提供单词:

>>> 'it may work'.split()
['it', 'may', 'work']
>>> len('it may work'.split())
3

答案 1 :(得分:3)

你太近了。这一行:

words = len(line.strip(' '))

应该是:

words = len(line.split(' '))

strip从字符串的开头和结尾删除字符,split将字符串分解为字符串列表。