我想计算文件中每行中的总字数并打印出来。我试过
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
我可以使用任何功能吗?我必须在文件中打印每行的第一个单词,同样将行的中间单词和最后一个单词打印成单独的文件。
答案 0 :(得分:4)
你从末端剥离空格,而不是分割单词。你现在正在计算其余的字符,而不是单词。
改为使用str.split()
:
words = len(line.split())
不需要参数,或使用None
;它将从末尾剥离空白,并在任意宽度的空格上分割,为您提供单词:
>>> 'it may work'.split()
['it', 'may', 'work']
>>> len('it may work'.split())
3
答案 1 :(得分:3)