我想计算文本文件每行中的单词数(不包括第一个单词),然后打印出包含最多单词的行的第一个单词?
目前,我只能计算整个文本文件中的单词数量。
f = open("C:/Users/John Green/Desktop/follows.txt", "r")
for line in f:
namelist = line.split()
names += len(namelist)
f.close()
print(names)
答案 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])