77命令行解析getopt库

 

复制代码
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()
复制代码

 

posted @   冷夜O  阅读(1)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
历史上的今天:
2024-01-21 50csv表格转换为json文件
点击右上角即可分享
微信分享提示