我不确定if语句是否错误?我试图分割每一行并遍历每个索引并找到'乌鸦'并返回计数。
def count_word(file_url, word):
r = requests.get(file_url, stream=True)
count = 0
for line in r.iter_lines():
words = line.split()
if line[1:] == 'the raven':
count += 1
return count
答案 0 :(得分:2)
当你这样做时
`words = line.split()`
您为变量words
分配了一个字符串列表 - 该行中的非空白字符串。但在此之后你还没有对words
做任何事情。相反,你做:
if line[1:] == 'the raven':
检查整行,减去第一个字符,是否真的是#raven'。
(编辑处理unicode / bytes):如果你想加总乌鸦的总次数'出现在整个文件中,您可以跳过split
和if
并直接从每一行获取出现次数。因为请求会为您提供bytes
个对象(在python 3中)或unicode
个对象(在python 2中),所以您需要首先使用适当的编码对行进行解码:
for line in r.iter_lines():
count += line.decode('utf-8').count('the raven')
如果您想要返回“乌鸦”中的总行数。出现了,你可以这样做:
for line in r.iter_lines():
if 'the raven' in line.decode('utf-8'):
count += 1
您可能需要选择不同的编码,具体取决于您的数据来源。
答案 1 :(得分:1)
以下对代码的轻微修改将允许您计算word
定义的文件中参数file_url
定义的任何单词。
def count_word(file_url, word):
r = requests.get(file_url, stream=True)
count = 0
for line in r.iter_lines():
count += line.count(word)
return count