Python 使用计算文件中的特定字

Python 使用计算文件中的特定字,python,Python,我试图用python计算一个逗号分隔的文件中出现的单词的数量 我有一个包含如下字符串的文件: path/to/app1,app1,fail,my@email.com,logfile.log path/to/app2,app2,success,my@email.com,logfile.log 我想知道文件中有多少次“失败” 我尝试了几件事,包括 for line in lines: if line.split(',') == "fail": fails += 1 您要做的是

我试图用python计算一个逗号分隔的文件中出现的单词的数量

我有一个包含如下字符串的文件:

path/to/app1,app1,fail,my@email.com,logfile.log
path/to/app2,app2,success,my@email.com,logfile.log
我想知道文件中有多少次“失败”

我尝试了几件事,包括

for line in lines:
   if line.split(',') == "fail":
       fails += 1

您要做的是将列表(由
str.split
)与字符串
fail
进行比较,您要做的是检查这些行中是否存在fail:

for line in lines:
   if "fail" in line.split(','):
       fails += 1
此代码假定
fail
最多只能在逗号之间出现一次

正确的方法是使用:

您还可以使用数字来计数:

import csv
from collections import Counter
counter = Counter()
with open("logfile.log") as f:
    reader = csv.reader(f)
    for row in reader:
        counter.update(row)
print counter['fail']

不是最佳解决方案,但有效

f = open("C:/Users/Superman/Desktop/krypton.log")
data = f.read()
fail_count =0
no_spaces = data.replace(' ', '')   #can use .strip() also to remove spaces
x = no_spaces.split(',')

for word in x:
  if word == 'fail':
    fail_count += 1
print (fail_count)
试试这个:

def specific_word_count(text, specific_word):
    return len(text.split(specific_word)) - 1
输入:

specific_word_count('abcdabcdabcd','a')
输出:

3

如果这是csv格式,请使用csv模块:您可以,但如果文件中有一个字符串显示“this this just failed”(这件事刚刚失败),该怎么办?当为您创建解析器时,您不应该创建解析器。这遵循了“不要重复自己”的原则。
3