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
83
分享
相关文章
解锁文件共享软件背后基于 Python 的二叉搜索树算法密码
文件共享软件在数字化时代扮演着连接全球用户、促进知识与数据交流的重要角色。二叉搜索树作为一种高效的数据结构,通过有序存储和快速检索文件,极大提升了文件共享平台的性能。它依据文件名或时间戳等关键属性排序,支持高效插入、删除和查找操作,显著优化用户体验。本文还展示了用Python实现的简单二叉搜索树代码,帮助理解其工作原理,并展望了该算法在分布式计算和机器学习领域的未来应用前景。
探秘文件共享服务之哈希表助力 Python 算法实现
在数字化时代,文件共享服务不可或缺。哈希表(散列表)通过键值对存储数据,利用哈希函数将键映射到特定位置,极大提升文件上传、下载和搜索效率。例如,在大型文件共享平台中,文件名等信息作为键,物理地址作为值存入哈希表,用户检索时快速定位文件,减少遍历时间。此外,哈希表还用于文件一致性校验,确保传输文件未被篡改。以Python代码示例展示基于哈希表的文件索引实现,模拟文件共享服务的文件索引构建与检索功能。哈希表及其分布式变体如一致性哈希算法,保障文件均匀分布和负载均衡,持续优化文件共享服务性能。
怎么取消对project.private.config.json这个文件的git记录
通过以上步骤,您可以成功取消对 `project.private.config.json`文件的Git记录。这样,文件将不会被包含在未来的提交中,同时仍保留在您的工作区中。
72 28
Python中的Paramiko与FTP文件夹及文件检测技巧
通过使用 Paramiko 和 FTP 库,开发者可以方便地检测远程服务器上的文件和文件夹是否存在。Paramiko 提供了通过 SSH 协议进行远程文件管理的能力,而 `ftplib` 则提供了通过 FTP 协议进行文件传输和管理的功能。通过理解和应用这些工具,您可以更加高效地管理和监控远程服务器上的文件系统。
63 20
如何在Python中高效地读写大型文件?
大家好,我是V哥。上一篇介绍了Python文件读写操作,今天聊聊如何高效处理大型文件。主要方法包括:逐行读取、分块读取、内存映射(mmap)、pandas分块处理CSV、numpy处理二进制文件、itertools迭代处理及linecache逐行读取。这些方法能有效节省内存,提升效率。关注威哥爱编程,学习更多Python技巧。
110 8
Python 高级编程与实战:深入理解性能优化与调试技巧
本文深入探讨了Python的性能优化与调试技巧,涵盖profiling、caching、Cython等优化工具,以及pdb、logging、assert等调试方法。通过实战项目,如优化斐波那契数列计算和调试Web应用,帮助读者掌握这些技术,提升编程效率。附有进一步学习资源,助力读者深入学习。
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
6天前
|
[oeasy]python074_ai辅助编程_水果程序_fruits_apple_banana_加法_python之禅
本文回顾了从模块导入变量和函数的方法,并通过一个求和程序实例,讲解了Python中输入处理、类型转换及异常处理的应用。重点分析了“明了胜于晦涩”(Explicit is better than implicit)的Python之禅理念,强调代码应清晰明确。最后总结了加法运算程序的实现过程,并预告后续内容将深入探讨变量类型的隐式与显式问题。附有相关资源链接供进一步学习。
19 4
Python 高级编程与实战:深入理解设计模式与软件架构
本文深入探讨了Python中的设计模式与软件架构,涵盖单例、工厂、观察者模式及MVC、微服务架构,并通过实战项目如插件系统和Web应用帮助读者掌握这些技术。文章提供了代码示例,便于理解和实践。最后推荐了进一步学习的资源,助力提升Python编程技能。

热门文章

最新文章