Python使用argparse命令行选项计算文件中单词个数

Python参数解析模块sys、getopt、argparse使用与对比分析 今天小编就为大家分享一篇关于Python参数解析模块sys、getopt、argparse使用与对比分析,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 一些命令行工具的使用能够大大简化代码脚本的维护成本,提升复用性,今天主要是借助于python提供的几种主流的参数解析工具来实现简单的功能,主要是学习实践为主,这是新年伊始开工的第一篇,还是花了一番功夫来完... 阅读详情

跟上一篇文章需求一样:Python计算文件中单词个数,只不过这次使用的是命令行选项与参数解析包argparse来做的。

如果想了解argparse,可以看一下这一篇文章:argparse – Command line option and argument parsing.

功能描述:

在linux命令行运行Python程序WordCount

1.如果只输入单个文件无命令则顺序输出此文件中单词个数、文本行数、字节数。

2.如果输入多个文件无命令则顺序输出这两个文件中单词个数、文本行数、字节数,并且计算每一列的总和total。

3.如1,2所示那样,只不过如果输入带有参数命令的则根据参数命令分别打印相应的文本,命令-w打印单词个数,-l打印文本行数,-c打印文本字节数。

代码如下:

程序名称为ArgsWordCount的缩写,awc.py。

import argparse
import sys

bcount = 0  # 字节数
wcount = 0  # 单词数
lcount = 0  # 行数
btotal = 0  # 字节总数
wtotal = 0  # 单词总数
ltotal = 0  # 行总数

# 创建解释器对象
parser = argparse.ArgumentParser()
# 添加命令
parser.add_argument('-l', action='store_true', dest='lcount', default=False, help='File line count')
parser.add_argument('-w', action='store_true', dest='wcount', default=False, help='File word count')
parser.add_argument('-b', action='store_true', dest='bcount', default=False, help='File word count')

parser.add_argument('i',action='store_true')
parser.add_argument("filepaths", nargs='*')

args = parser.parse_args(sys.argv[1:])
args = parser.parse_args()
# 文件名
IMG = args.filepaths
# 读取文件
for i in IMG:
    if ".txt" in i:
        file = open(i, 'r')
        text = file.read()
        file.close()
    # 计算字节数
        bcount = len(text)
    # 计算单词数
        wcount = len(text.split())
    # 计算行数
        lcount = len(text.split("\n"))
    # 字节数总和
        btotal = btotal + bcount
    # 单词个数总和
        wtotal = wtotal + wcount
    # 行数总和
        ltotal = ltotal + lcount

    # 1 flags
    if args.bcount and not args.lcount and not args.wcount:
            print(bcount,i)
    if not args.bcount and args.lcount and not args.wcount:
            print(lcount,i)
    if not args.bcount and not args.lcount and args.wcount:
            print(wcount,i)
     # 2 flags
    if args.bcount and args.lcount and not args.wcount:
            print(bcount,lcount,i )
    if args.bcount and args.wcount and not args.lcount:
            print(bcount,wcount,i )
    if args.lcount and args.wcount and not args.bcount:
            print(lcount,wcount,i )

    # 3 flags
    if args.lcount and args.wcount and args.bcount:
            print(lcount,wcount,bcount,i )



    # 1 total
    if args.bcount and not args.lcount and not args.wcount and  btotal != bcount:
            print(btotal, "total")
    if args.lcount and not args.bcount and not args.wcount and  ltotal != lcount:
            print(ltotal, "total")
    if args.wcount and not args.lcount and not args.bcount and  wtotal != wcount:
            print(wtotal, "total")

    # 2 total
    if args.bcount and args.lcount and not args.wcount and btotal != bcount and ltotal != lcount:
            print(btotal,ltotal, "total")
    if args.bcount and args.wcount and not args.lcount and btotal != bcount and wtotal != wcount:
            print(btotal,wtotal, "total")
    if args.lcount and args.wcount and not args.bcount and ltotal != lcount and wtotal != wcount:
            print(ltotal,wtotal, "total")

    # 3 total
    if args.lcount and args.wcount and args.bcount and ltotal != lcount and wtotal != wcount and btotal != bcount:
            print(ltotal,wtotal,bcount, "total")


运行结果:








python统计word文档中的单词 您可以定义一个函数(例如count words),该函数对文件中(非非索引字表)单词的出现次数进行计数,并将这些计数作为字典返回,即单词作为键并计数为值。(或者,您可以定义一个简单的类实例存储此信息,并将单词计数功能作为一种方法。比较:您可以定义一个函数,在给定的计数字典中两个文件)计算其单词重叠的度量。一个简单的版本忽略文件中的单词数,而是处理每一个都只是一组单词类型。为了简化,您可以将单词视为文件中找到的所有最大字母顺序(可以使用简单regex和regex findall方法)。 阅读详情

相关推荐

若依开源框架(分离版)在人大金仓数据库下使用

对于甲方业务特殊要求,使用国产化数据库人大金仓,作为项目主要存储。这里以若依开源框架整合人大金仓为例,演示如何在真实项目中引入人大金仓。

🐱喵测实验室 5942

1、argparse命令行参数&&python环境变量

python

weixin_44986037的博客 745

手把手教你配置SAP EWM HU类型及号段分配(含常见错误排查)

本文详细介绍了SAP EWM系统中HU类型及号段分配的配置方法,包括环境准备、包材主数据配置、存储类型关联及号段管理。通过实战案例和常见错误排查,帮助用户高效完成HU配置,提升仓储管理效率。重点讲解了EWM后台配置和号段配置的关键步骤与技巧。

weixin_33670786的博客 443

Python统计所输入字符串中单词的个数

Python统计所输入字符串中单词的个数

m0_63202718的博客 3万+

VSCode + ESP-IDF 项目搭建及配置

VSCode 搭建 ESP-IDF 开发环境

weixin_51358957的博客 2万+

软考高级系统架构设计师系列论文四十九:论微服务架构及其应用

软考高级系统架构设计师系列论文四十九:论微服务架构及其应用

zhengzaifeidelushang的博客 3194

python统计txt文件中的单词个数

with open('统计单词个数.txt','r',encoding='utf-8') as f: new_lines='' all_the_lines=f.readlines() for every_line in all_the_lines: for i in range(0,len(every_line)): if ord(every_line[i])<65 or ord(every_line[i])>122:

weixin_46396766的博客 8558

Python和Spyder:一个完美的编程组合

而Spyder作为一个专门为科学计算和数据分析而设计的IDE,提供了高效的开发环境和丰富的工具。无论是初学者还是专业开发者,Python和Spyder都能满足他们的需求,并为他们的工作带来便利和效率。本文将探讨Python和Spyder之间的关系,以及它们如何相互配合,提供一流的编程体验。每个工具都有其特定的优势和适用场景,开发者可以根据自己的需求选择合适的工具。而Spyder作为一个专门为科学计算而设计的IDE,提供了编写、调试和执行Python代码的环境。

CodeHeroicX的博客 1124

python——统计文本中单词数

类型:文件处理。

m0_62488776的博客 7431

Agent Harness Engineering: AI Agent 执行管控与安全沙箱 原理与最佳实践

我们正站在计算范式转移的历史节点上。2024-2026 年间,AI 系统从被动的内容生成器(Generative AI)演变为主动的行动执行者(Agentic AI)。这一转变的根本特征是:根据 2026 年初的行业数据:然而,能力的提升伴随着风险的指数级增长。2024-2026 年间发生的多起标志性安全事件揭示了 Agent 系统的脆弱性:案例 1:Slack AI 数据外泄事件(2024 年 8 月)案例 2:制造业供应链攻击(2026 年 Q3)案例 3:Arup 深度诈骗案(2026 年 9 月)这

AI天才研究院 1669

FOC高频注入量产级C语言实现方案

高频注入技术是无传感器FOC实现零速和低速控制的关键方法,解决了传统反电动势观测器在低速失效的问题。该技术通过向电机注入高频电压信号,利用永磁同步电机凸极性特性,从高频电流响应中解调出转子位置信息。文章详细介绍了三种主流高频注入方法(旋转电压注入、脉振电压注入和脉振电流注入)的原理及实现流程,重点分析了脉振电压注入的信号处理步骤和位置观测器设计。同时提供了完整的C语言实现代码,包括硬件抽象层、核心算法模块(坐标变换、电流环、SVPWM等)和系统集成方案,并给出量产优化建议和安全保护机制。这套方案适用于要求高

汽车软件开发 794

【python】命令行传参,sys VS argparse

代码定制化后,频繁地修改路径等参数显得不够 Pythonic,使用 argparse 通过关键字传参不失为一种解决方法!

weixin_44844635的博客 2812

【Codecs系列】HEVC-SCC(一):核心技术介绍

DATE: 2020.6.4【Tags: HEVC SCC】 1、参考网址 2、SCC简介 3、HEVC-SCC核心技术

优快云明星博主,认证博客专家,视频、Matlab领域优质创作者。 4806

【python】程序运行添加命令行参数argparse模块用法详解

Python标准库之argparse,详解如何创建一个ArgumentParser对象及如何使用

Elaine的博客 3313

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Python argparse 教程 —— 传递外部参数

本文介绍了Python标准库中的argparse模块,用于解析命令行参数。

weixin_44763989的博客 1114

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

python参数解析模块sys、getopt、argparse学习使用与对比分析

一些命令行工具的使用能够大大简化代码脚本的维护成本,提升复用性,今天主要是借助于python提供的几种主流的参数解析工具来实现简单的功能,主要是学习实践为主,这是新年伊始开工的第一篇,还是花了一番功夫来完成写作的和实验的,希望能够帮到需要的朋友们,新的一年里,祝大家心想事成! 好了,废话不多说,下面进入正文。 Python中有三个内建的模块用于处理命令行参数...

Together_CZ的博客 3550

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Python中最好用的命令行解析工具:argparse

Python 做为一个脚本语言,可以很方便地写各种工具。当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现)。 如果要以命令行执行,那你需要解析一个命令行参数解析的模块来帮你做这个苦力活。 Python 本身就提供了三个命令行参数解析模块,我这里罗列一下它们的大致情况供你了解。 getopt,只能简单的处理命令行参数 optparse,功能强大,易于...

python学习者的博客 895

在Python中处理命令行参数详解(sys.argv 与 argparse 详解)

其他关于Python的总结文章请访问:https://blog.youkuaiyun.com/qq_38962621/category_10299380.html 在Python中处理命令行参数详解(sys.argv 与 argparse 详解) 在运行python程序的时候,往往需要传入一些参数,本节主要介绍两种设置传入命令行参数的方法。 sys.argv 使用sys.argv处理传入参数,需要引入sys模块: import sys sys.argv即是使用命令行运行 python 命令(或者 python3 命令

超级超级小天才的博客 1万+

Python命令行参数解析:从sys.argv到argparse实战指南

命令行参数是程序与用户交互的重要接口,它允许用户在执行脚本时动态配置程序行为。其核心原理在于操作系统将命令行输入以字符串列表的形式传递给程序入口。在Python中,sys.argv模块提供了访问这些原始参数的底层能力,是构建命令行工具的基础。掌握参数解析技术对于开发可复用、可配置的脚本和工具至关重要,能显著提升开发效率和脚本的实用性。在实际应用中,从简单的配置覆盖到复杂的子命令系统,良好的参数处理机制都是实现自动化脚本、DevOps工具和CLI应用的关键。本文聚焦于Python生态,深入探讨如何从基础的sy

weixin_34133829的博客 448

Python命令行选项解析器 - optparse

虽然optparse非常灵活和强大,但在大多数情况下使用起来也很简单。以下介绍任何基于optparse的程序都通用的代码模式。第一步,需要导入类;fromoptparseimport...parser()第二步,开始定义选项。基本语法是:parser...attrvalue,...每个选项都有一个或多个选项字符串opt_str,例如-f或--file,以及几个选项属性attr=value,这些属性告诉optparse在命令行上遇到该选项时会发生什么以及要做什么。

jasonsei的博客 452

python的argparse模块详解【小白入门】

命令行参数就是你在运行程序时,在程序名字后面加的一些额外信息。# 没有参数 python main.py # 有参数 python main.py --debug --batch_size 32 --lr 0.001这里的--debug--lr 0.001就是命令行参数。argparse是 Python 标准库(从 Python 3.2 开始引入,替代了旧的optparse和getopt)中的一个模块,用于解析命令行参数。argparse解析这些跟在脚本名后面的参数(如--inputdata.txt等)

vvvdg的博客 1090

Python argparse命令行参数解析:从基础到实战项目开发

命令行参数解析是Python脚本开发中的基础技术,它允许程序从命令行接收输入参数,实现灵活的配置和交互。其核心原理是通过解析sys.argv列表,将用户输入的字符串转换为程序内部可用的结构化数据。这项技术的价值在于提升脚本的复用性和用户体验,使工具更易于集成到自动化流程中。在应用场景上,从简单的数据过滤脚本到复杂的DevOps工具链都广泛依赖命令行接口。本文聚焦Python标准库argparse,通过热门的日志分析实战项目,系统讲解如何设计清晰易用的命令行工具,并分享类型转换、子命令、参数分组等工程实践技巧

weixin_34321753的博客 411

argparse模块使用与讲解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、argparse是什么?二、使用步骤1.创建一个解析器对象2.传入参数总结 前言 最近在使用linux系统,经常需要命令行进行传输指令,在这里对相关知识进行总结与归纳,希望对各位也有用。 一、argparse是什么? argparse 模块是python的命令行解析的标准模块,可以让人轻松编写用户友好的命令行接口,这个库可以让我们直接在命令行中向程序中传入参数并让程序运行。 二、使用步骤 1.创建一个解析器对象 在arg

tfghmx的博客 949

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

这段代码的主要功能是统计文本文件中某个特定单词(在这里是’fishing’)出现的次数。

源的博客 923

python中argparse模块_Python的argparse模块的使用

Python的argparse模块的使用最近看到一份Pytorch代码有以下内容:# Training settingsparser = argparse.ArgumentParser(description='PyTorch MNIST Example')parser.add_argument('--batch-size', type=int, default=64, metavar='N',h...

weixin_39997173的博客 318
上一篇: Python计算文件中单词个数
下一篇: 抽象工厂模式一个例子
DiamondTan-覃
博客等级 码龄11年 148粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值