Python实用记录(十四):python统计某个单词在TXT/JSON文件中出现的次数

简介: 这篇文章介绍了一个Python脚本,用于统计TXT或JSON文件中特定单词的出现次数。它包含两个函数,分别处理文本和JSON文件,并通过命令行参数接收文件路径、目标单词和文件格式。文章还提供了代码逻辑的解释和示例用法。

代码


import argparse
import ast
import json

def count_word_num_txt(txt_path, word):
    fishing_count = 0
    with open(txt_path, 'r') as file:
        for line in file:
            sentences = ast.literal_eval(line)
            sections = str(sentences).split("[")
            for section in sections:
                if "'{}'".format(word) in section:
                    fishing_count += 1
    return fishing_count

def count_word_num_json(json_path, word):
    count = 0
    with open(json_path, 'r') as file:
        data = json.load(file)
        for image_path, detections in data.items():
            for detection in detections:
                detection_type = detection['type']
                if detection_type == word:
                    count += 1
    return count

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description="Count the occurrences of a word in a text or JSON file.")
    # "../result/fish/ori_data.txt"    "../result/fish/fish_result.json"
    parser.add_argument("--file", type=str, default="../result/fish/ori_data.txt", help="Path to the input file (txt or json).")
    parser.add_argument("--word", type=str,default="fishing", help="Target word to count.")
    parser.add_argument("--format", type=str, choices=["txt", "json"], default="txt", help="File format (txt or json).")

    args = parser.parse_args()

    if args.format == "txt":
        count_function = count_word_num_txt
    elif args.format == "json":
        count_function = count_word_num_json
    else:
        print("Invalid file format. Please choose 'txt' or 'json'.")
        exit(1)

    if args.format == "txt":
        counts = count_function(args.file, args.word)
    elif args.format == "json":
        counts = count_function(args.file, args.word)

    print("{}文件: 出现 '{}' 的次数:".format(args.file, args.word), counts)
AI 代码解读

逻辑

  1. 导入了argparse、ast和json模块,用于处理命令行参数、将字符串转换为Python对象以及处理JSON文件。
  2. 定义了两个函数,count_word_num_txt和count_word_num_json,用于分别统计文本文件和JSON文件中某个目标单词的出现次数。
  3. 在count_word_num_txt函数中,它接受文本文件路径(txt_path)和目标单词(word)作为参数,然后初始化一个计数器fishing_count为0。它打开文本文件,逐行读取文件内容,将每一行使用ast.literal_eval转换为Python对象,然后将对象转换为字符串,并通过split(“[”)来分割成多个部分。接着,它遍历每个部分,检查目标单词是否出现在部分中(在单引号内),如果是,就将计数器增加1,最后返回计数器的值。
  4. 在count_word_num_json函数中,它接受JSON文件路径(json_path)和目标单词(word)作为参数,然后初始化一个计数器count为0。它打开JSON文件,使用json.load将JSON数据加载为Python对象,然后遍历数据,逐个检查每个图片的检测内容中是否包含目标单词,如果包含,就将计数器增加1,最后返回计数器的值。
  5. 在if name == ‘main’:块中,它使用argparse来解析命令行参数,包括输入文件路径(–file)、目标单词(–word)和文件格式(–format)。默认的文件路径是"…/result/fish/ori_data.txt",默认的目标单词是"fishing",默认的文件格式是"txt"。
  6. 根据文件格式的选择,确定要使用的统计函数(count_function)是count_word_num_txt还是count_word_num_json。
  7. 最后,根据所选择的文件格式和指定的文件路径和目标单词,调用相应的统计函数来统计目标单词的出现次数,并打印出结果。

这个代码允许用户通过命令行参数来指定要统计的文件、目标单词以及文件格式,然后执行相应的统计操作,并打印出结果。

结果

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

目录
打赏
0
0
0
0
86
分享
相关文章
淘宝商品详情API的调用流程(python请求示例以及json数据示例返回参考)
JSON数据示例:需要提供一个结构化的示例,展示商品详情可能包含的字段,如商品标题、价格、库存、描述、图片链接、卖家信息等。考虑到稳定性,示例应基于淘宝开放平台的标准响应格式。
|
19天前
|
使用Python实现multipart/form-data文件接收的http服务器
至此,使用Python实现一个可以接收 'multipart/form-data' 文件的HTTP服务器的步骤就讲解完毕了。希望通过我的讲解,你可以更好地理解其中的逻辑,另外,你也可以尝试在实际项目中运用这方面的知识。
123 69
如何在 Postman 中上传文件和 JSON 数据
如果你想在 Postman 中同时上传文件和 JSON 数据,本文将带你一步一步地了解整个过程,包括最佳实践和技巧,让你的工作更轻松。
如何在Python中高效实现CSV到JSON的数据转换
在实际项目中,数据格式转换是常见问题,尤其从CSV到JSON的转换。本文深入探讨了多种转换方法,涵盖Python基础实现、数据预处理、错误处理、性能优化及调试验证技巧。通过分块处理、并行处理等手段提升大文件转换效率,并介绍如何封装为命令行工具或Web API,实现自动化批量处理。关键点包括基础实现、数据清洗、异常捕获、性能优化和单元测试,确保转换流程稳定高效。
173 83
Python文件打包:一站式指南
本文深入探讨Python文件打包的各种方法,从基础的zip和tar工具到高级的setuptools、PyInstaller、cx_Freeze等,涵盖Docker镜像、虚拟环境及自包含可执行文件的打包方式。通过示例代码与详细解析,帮助开发者根据项目需求选择合适的打包方案,提升代码分发与部署效率。内容全面,适合各水平读者学习参考。
用Python爬虫抓取数据并保存为JSON的完整指南
用Python爬虫抓取数据并保存为JSON的完整指南
探秘文件共享服务之哈希表助力 Python 算法实现
在数字化时代,文件共享服务不可或缺。哈希表(散列表)通过键值对存储数据,利用哈希函数将键映射到特定位置,极大提升文件上传、下载和搜索效率。例如,在大型文件共享平台中,文件名等信息作为键,物理地址作为值存入哈希表,用户检索时快速定位文件,减少遍历时间。此外,哈希表还用于文件一致性校验,确保传输文件未被篡改。以Python代码示例展示基于哈希表的文件索引实现,模拟文件共享服务的文件索引构建与检索功能。哈希表及其分布式变体如一致性哈希算法,保障文件均匀分布和负载均衡,持续优化文件共享服务性能。
python语言采集淘宝商品详情数据,json数据示例返回
通过淘宝开放平台的API接口,开发者可以轻松获取商品详情数据,并利用这些数据进行商品分析、价格监控、库存管理等操作。本文提供的示例代码和JSON数据解析方法,可以帮助您快速上手淘宝商品数据的采集与处理。
如何在Python中高效地读写大型文件?
大家好,我是V哥。上一篇介绍了Python文件读写操作,今天聊聊如何高效处理大型文件。主要方法包括:逐行读取、分块读取、内存映射(mmap)、pandas分块处理CSV、numpy处理二进制文件、itertools迭代处理及linecache逐行读取。这些方法能有效节省内存,提升效率。关注威哥爱编程,学习更多Python技巧。
119 8
n种方式教你用python读写excel等数据文件
n种方式教你用python读写excel等数据文件
128 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等