zoukankan      html  css  js  c++  java
  • python的main函数

    python的main函数

    https://blog.csdn.net/ppppfly/article/details/53415999

    先上代码,再上说明。

    • 创建一个Python文件say_hi.py
    # coding=utf-8
    import getopt
    import sys
    
    if __name__ == '__main__':
        opts, args = getopt.getopt(sys.argv[1:], 'hn:w:', ['name=', 'word=', 'help'])
    
        name = 'No Name'
        word = 'Hello'
        for key, value in opts:
    
            if key in ['-h', '--help']:
                print '一个向人打招呼的程序'
                print '参数:'
                print '-h	显示帮助'
                print '-n	你的姓名'
                print '-w	想要说的话'
                sys.exit(0)
            if key in ['-n', '--name']:
                name = value
            if key in ['-w', '--word']:
                word = value
    
        print '你好,我叫', name, ',', word
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 好了,我们运行吧
    $ python say_hi.py
    你好,我叫 No Name , Hello
    
    $ python say_hi.py -h
    一个向人打招呼的程序
    参数:
    -h      显示帮助
    -n      你的姓名
    -w      想要说的话
    
    $ python say_hi.py --help
    一个向人打招呼的程序
    参数:
    -h      显示帮助
    -n      你的姓名
    -w      想要说的话
    
    $ python say_hi.py -n 'ppppfly'
    你好,我叫 ppppfly , Hello
    
    $ python say_hi.py -n 'ppppfly' -w '我胡汉三又回来啦!'
    你好,我叫 ppppfly , 我胡汉三又回来啦!
    
    $ python say_hi.py --name 'ppppfly' --word '我胡汉三又回来啦!'
    你好,我叫 ppppfly , 我胡汉三又回来啦!
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 解释点什么呗

    __name__ == '__main__'是Python的main函数入口。并非说,加入这句才能使用python xxx.py来执行,而是说,这里可以判断,当前是否是直接被python直接调用执行。

    getopt是一个包装方法,用以读取main函数后面跟着的参数。getopt.getopt(args, options[, long_options])有三个变量,args就是python xxx.py后面跟着的参数,通常就是sys.argv数组,不过我们一般会去除第一个元素,因为sys.argv的第一个元素,就是文件名本身。所以,我们的写法是sys.argv[1:]

    options是一个字符串,描述了需要解析哪些参数。如果一个参数,不需要跟变量,比如-h,那么直接使用参数名即可。如果一个参数需要传入变量,则在后面加:,比如n:。所以本案例中hn:w:的意思是,我们有三个参数,分别是-h-n-w,其中-h无需传入变量,而-n-w需要传入变量。

    long_options是一个字符串数组,也表示需要解析哪些参数。long_options是相对options而言的,我们在linux中,经常会看到一个命令的参数有多种写法,最常见的就是帮助参数,它有两种写法:-h--help。前一种是就是我们的options,而后一种就是long_options

    假如我们有一个--help,那么在long_options中就是['help']。如果一个参数需要传入参数,比如--name 'Good',那么在long_options中就是['name='],是的,就是多一个=

    getopt.getopt返回一个元组(opts, args),其中opts就是我们解析出来的参数,而args则是剩余没有解析的参数。opts是元组数组,每个元组,相当于key-value。key就是我们的参数名,而value就是参数的内容。

  • 相关阅读:
    如何通过命令行窗口查看sqlite数据库文件
    eclipse自动补全的设置
    文本装饰
    注释和特殊符号
    文本装饰
    网页背景
    通过ArcGIS Server admin 查看和删除已注册的 Web Adaptor
    通过 ArcGIS Server Manager 查看已安装的 Web Adaptor
    通过 ArcGIS Server Manager 验证 DataStore
    Windows上安装ArcGIS Enterprise——以 Windows Server 2012 R2上安装 ArcGIS 10.8为例
  • 原文地址:https://www.cnblogs.com/handsome1013/p/9269013.html
Copyright © 2011-2022 走看看