首页 > 其他分享 >77命令行解析getopt库

77命令行解析getopt库

时间:2025-01-21 17:43:42浏览次数:1  
标签:选项 sys file argv 77 命令行 getopt txt

 

import getopt
import sys
r"""
getopt.getopt(sys.argv[1:], "hf:", ["help", "file="])
sys.argv[1:]:这是要解析的命令行参数列表。sys.argv 是一个包含命令行参数的列表,其中 sys.argv[0] 是脚本名称,sys.argv[1:] 则是脚本后面的所有参数。
例如,如果命令行输入是 script.py -f example.txt,那么 sys.argv 为 ['script.py', '-f', 'example.txt'],sys.argv[1:] 则为 ['-f', 'example.txt']。
"hf:":这是短选项字符串。每个字符代表一个短选项,如果选项后面跟一个冒号 :,表示该选项需要一个参数。在这个例子中:
-h:表示一个不需要参数的选项。
-f:表示一个需要参数的选项。

["help", "file="]:这是长选项列表。每个元素是一个字符串,表示一个长选项。如果选项后面跟一个等号 =,表示该选项需要一个参数。在这个例子中:
help:表示一个不需要参数的长选项。
file=:表示一个需要参数的长选项。
返回值
getopt.getopt 函数返回一个元组 (opts, args):
opts:是一个列表,每个元素是一个 (option, value) 形式的元组,表示选项和对应的值。例如:
如果命令行输入是 script.py -h,那么 opts 为 [('-h', '')]。
如果命令行输入是 script.py -f example.txt,那么 opts 为 [('-f', 'example.txt')]。
如果命令行输入是 script.py --file example.txt,那么 opts 为 [('--file', 'example.txt')]。
args:是一个列表,包含那些不是选项的剩余命令行参数。例如:
如果命令行输入是 script.py -f example.txt extra1 extra2,那么 args 为 ['extra1', 'extra2']。
"""
def main():
    try:
        opts,args = getopt.getopt(sys.argv[1:],"hf:",["help","file="])
    except getopt.GetoptError as err:
        print("error:",err)
        exit(0)

    for opt,arg in opts:
        if opt in ("-h","--help"):
            print(f"Usage:{sys.argv[0]} [options]")
            print("Options:")
            print("     -h, --help          show this help message and exit")
            print("     -f, --file  <filename>  specify the filename")
            exit(0)
        elif opt in ("-f","--file"):
            print(f"Filename:{arg}")
            exit(0)

    print("Remaining arguments:",args)


if __name__ == '__main__':
    main()

 

标签:选项,sys,file,argv,77,命令行,getopt,txt
From: https://www.cnblogs.com/chenzhi2023/p/18683918

相关文章

  • copype 是 Windows PE (Preinstallation Environment) 中的一个命令行工具,是 Windows
    Copype命令行选项|MicrosoftLearn copype是WindowsPE(PreinstallationEnvironment)中的一个命令行工具,通常用于创建和准备WindowsPE的工作环境。它是WindowsADK(WindowsAssessmentandDeploymentKit)中的一个实用工具,用来帮助用户快速复制WindowsPE文件......
  • LeetCode 771. 宝石与石头
    在本篇博客中,我们将探讨如何解决LeetCode上的第771题——宝石与石头。这个问题涉及到字符串的处理和集合的使用,是一个典型的编程问题,适合初学者练习。解题思路解决这个问题的关键在于如何高效地检查stones中的每个字符是否在jewels中。我们可以通过以下步骤来实现:......
  • 【牛客训练记录】牛客周赛 Round 77
    训练情况赛后反思打一半吃饭去了,C题看到ax+by=k的问题,简单的扩欧exgcd没反应过来,简单数论还是不熟悉TAT,D题DSU计算联通块大小时\(i\)打成\(a_i\)疯狂RE被硬控了十几分钟A题输出题目所述的第几个字符串即可#include<bits/stdc++.h>//#defineintlonglong#defin......
  • manage-bde 是一个用于管理 BitLocker 驱动器加密的命令行工具,广泛应用于 Windows 操
    manage-bde|MicrosoftLearn manage-bde命令按功能进行分类,并以表格形式呈现的结果:功能分类命令描述基本命令manage-bde启动 manage-bde 命令行工具,显示相关帮助信息。查看加密状态manage-bdestatus显示所有驱动器的BitLocker加密状态,包括是否启用、......
  • [BZOJ P2771] 天才ACM
    [BZOJP2771]天才ACM传送门朴素算法枚举终点\(r\),对区间\([l,r]\)排序求校验值\(sum\),比较\(sum\)和\(t\)$sum\let$ r++$sum>t$l=++r,ans++时间复杂度N2logN初步优化考虑校验值单调不下降,可枚举左端点l时二分右端点r,再对区间l~r求校验值,更新方法......
  • 877、基于51单片机的直流电机仿真设计(正反转,加减速,启停)
    毕设帮助、开题指导、技术解答(有偿)见文末。目录一、设计功能二、proteus仿真三、原理图四、程序源码五、资料包括一、设计功能51单片机实现直流电机正反转、加减速、启动和停止。用LCD显示电机工作状态二、proteus仿真三、原理图四、程序源码五、资料......
  • 2.2 命令行解析工具cobra的使用
    本节重点介绍:kubectl的职责和kubectl的代码原理cobra库的使用简介kubectl的职责主要的工作是处理用户提交的东西(包括,命令行参数,yaml文件等)然后其会把用户提交的这些东西组织成一个数据结构体然后把其发送给APIServerkubectl的代码原理从命令行和yaml文件中获取......
  • 命令行终端的编码
    编码设置查看当前系统的编码,可以通过cmd命令行终端,运行chcp命令查看常见的有以下几种(GBK通常是中文系统的默认编码)936GBK437美国英语65001utf-8对于中文系统来说,GBK经常会导致一些终端窗口的乱码问题,可以设置全局的编码为65001打开注册表路径HKEY_LOCAL......
  • 【AIcoding技术必知必会】10问--命令行是什么?
    基础介绍命令行(CommandLine)是一种通过输入文本命令来与计算机交互的界面,也称为命令行界面(CLI-CommandLineInterface)。它是一种交互方法,而不是具体的程序。相比图形用户界面(GUI),命令行提供了更直接和强大的方式来控制计算机。熟练掌握后会大大提高工作效率,特别是在服务器管......
  • 《CPython Internals》阅读笔记:p177-p220
    《CPythonInternals》学习第11天,p177-p220总结,总计44页。一、技术总结1.memoryallocationinC(1)staticmemeoryallocationMemoryrequirementsarecalculatedatcompiletimeandallocatedbytheexecutablewhenitstarts.(2)automaticmemeoryallocation......