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)

逻辑

  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. 最后,根据所选择的文件格式和指定的文件路径和目标单词,调用相应的统计函数来统计目标单词的出现次数,并打印出结果。

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

结果

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

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

目录
相关文章
|
1月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
608 2
|
6天前
|
JSON 算法 API
Python中的json模块:从基础到进阶的实用指南
本文深入解析Python内置json模块的使用,涵盖序列化与反序列化核心函数、参数配置、中文处理、自定义对象转换及异常处理,并介绍性能优化与第三方库扩展,助你高效实现JSON数据交互。(238字)
86 4
|
9天前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
18天前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
25天前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
|
1月前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
2月前
|
JSON 安全 API
Python处理JSON数据的最佳实践:从基础到进阶的实用指南
JSON作为数据交换通用格式,广泛应用于Web开发与API交互。本文详解Python处理JSON的10个关键实践,涵盖序列化、复杂结构处理、性能优化与安全编程,助开发者高效应对各类JSON数据挑战。
195 1
|
2月前
|
缓存 数据可视化 Linux
Python文件/目录比较实战:排除特定类型的实用技巧
本文通过四个实战案例,详解如何使用Python比较目录差异并灵活排除特定文件,涵盖基础比较、大文件处理、跨平台适配与可视化报告生成,助力开发者高效完成目录同步与数据校验任务。
114 0
|
JSON 数据格式 Python
Python编程:利用JSON模块编程验证用户
Python编程:利用JSON模块编程验证用户
102 1
|
存储 JSON JavaScript
python序列化: json & pickle & shelve 模块
python序列化: json & pickle & shelve 模块

推荐镜像

更多