文本文件中每行的单词总数

时间:2018-05-23 00:21:19

标签: python-3.x

我想计算文本文件每行中的单词数(不包括第一个单词),然后打印出包含最多单词的行的第一个单词?

目前,我只能计算整个文本文件中的单词数量。

f = open("C:/Users/John Green/Desktop/follows.txt", "r")
for line in f:
   namelist = line.split()
   names += len(namelist)
f.close()
print(names)

2 个答案:

答案 0 :(得分:0)

你可以使用`list'并列出清单。 我会创建一个主列表来存储索引,然后附加从" split()"返回的列表。 ([" word1"," wordN"])。

因此,您只需打印max_index指向的列表中的第一项即可。

f = open("C:/Users/John Green/Desktop/follows.txt", "r")

word_list = []
max_index = 0
max_num_word = 0

for index,line in enumerate(f.readlines(),0):
    namelist = line.split()
    word_list[index].append(namelist) # adding the new list
    if (max_num_word < len(namelist)):
        max_num_word = len(namelist)
        max_index = index

f.close() 
print namelist[max_index][0] #first word of the most num words line

答案 1 :(得分:0)

您的line变量不是一行,而是所有文本。尝试为split函数提供一个新的行参数'\n'以获取行的列表。此外,您的for循环也无需读取文件。

def count_words(line):
    words = line.split()
    return len(words)

f = open("C:/Users/John Green/Desktop/follows.txt", "r")
text = f.read()
#make a list of the file broken into lines
lines = text.split('\n')
max_words = -1
word = ''
for line in lines:
    length = count_words(line)
    if length > max_words:
        max_words = length
        words = line.split()
f.close()
print(words[0])