Python 如何计算有多少行有一个特定的字

Python 如何计算有多少行有一个特定的字,python,Python,我不确定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 +=

我不确定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
当你这样做的时候

`words = line.split()`
您正在为变量
words
分配字符串列表-行中的非空白字符串。但是在那之后,你就不能用
单词
做任何事情了。相反,您可以:

if line[1:] == 'the raven':
检查整行,减去第一个字符,是否就是“乌鸦”

(为处理unicode/字节而编辑):如果您想合计“the raven”在整个文件中出现的总次数,您可以跳过
拆分
如果
,直接从每一行获取出现次数。由于请求为您提供
字节
对象(在python 3中)或
unicode
对象(在python 2中),因此您需要首先使用适当的编码对行进行解码:

for line in r.iter_lines():
    count += line.decode('utf-8').count('the raven')
如果您想返回显示“the raven”的总行数,可以执行以下操作:

for line in r.iter_lines():
    if 'the raven' in line.decode('utf-8'):
        count += 1
根据您的数据源,您可能需要选择不同的编码。

当您这样做时

`words = line.split()`
您正在为变量
words
分配字符串列表-行中的非空白字符串。但是在那之后,你就不能用
单词
做任何事情了。相反,您可以:

if line[1:] == 'the raven':
检查整行,减去第一个字符,是否就是“乌鸦”

(为处理unicode/字节而编辑):如果您想合计“the raven”在整个文件中出现的总次数,您可以跳过
拆分
如果
,直接从每一行获取出现次数。由于请求为您提供
字节
对象(在python 3中)或
unicode
对象(在python 2中),因此您需要首先使用适当的编码对行进行解码:

for line in r.iter_lines():
    count += line.decode('utf-8').count('the raven')
如果您想返回显示“the raven”的总行数,可以执行以下操作:

for line in r.iter_lines():
    if 'the raven' in line.decode('utf-8'):
        count += 1

根据您的数据源,您可能需要选择不同的编码。

以下对代码的轻微编辑将允许您计算由
文件url
定义的文件中由参数
word
定义的任何单词

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

以下对代码的轻微编辑将允许您计算由
file\u url
定义的文件中由参数
word
定义的任何单词

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

您看到了哪些错误?请阅读。特别是,请确保包含以下信息:1)您预期会发生什么,2)正在发生什么。它只返回None,即“有多少行有一个特定单词”您的意思是“一个特定单词出现在多少行中”?您看到了哪些错误?请阅读。特别是,请确保包含以下信息:1)您期望发生什么,2)正在发生什么。它只返回None,即“有多少行有一个特定的单词”您的意思是“一个特定的单词出现在多少行中”?我已经尝试了所有这些,但它一直给我这个错误:“需要一个类似字节的对象,而不是“str”,抱歉-没有意识到您正在使用python 3。在这种情况下,您需要对输入进行解码。我将编辑我的答案。我已经尝试了所有这些,但它一直给我这个错误:“需要一个类似字节的对象,而不是'str'”啊,对不起,我没有意识到你在使用python 3。在这种情况下,您需要对输入进行解码。我将编辑我的答案。