如何统计并打印文件中每行的单词数?
我想要计算一个文件中每一行的总单词数,并把结果打印出来。我试过了:
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 个回答
4
你现在是在去掉字符串两端的空格,而不是在分割单词。你现在是在计算剩下的字符,而不是单词。
可以使用str.split()
来代替:
words = len(line.split())
这个方法不需要任何参数,或者你可以用None
;它会去掉字符串两端的空格,并且会根据任意宽度的空格来分割,这样你就能得到单词了:
>>> 'it may work'.split()
['it', 'may', 'work']
>>> len('it may work'.split())
3