python中的main

注:

  1. main函数是所有执行程序的入口,只有当该Python脚本直接作为执行程序时才会执行。

  2. 当该python脚本被作为模块(module)引入(import)时,其中的main()函数将不会被执行。

python中的main的写法

#!/usr/bin/env python

# -*- coding: UTF-8 -*-

import sys
import getopt
import os

progname_version = '1.0.0'
bug_address = '[email protected]'

#使用帮助
class Usage(Exception):
    def __init__(self, progname, status):
        if (status != 0):
            print(sys.stderr, "Try `%s --help` for more information." % progname)
        else:
            print("Usage : %s [OPTION...]\n\n"\
                "-v, --version Print program version\n"\
                "-h, --help Display this help and exit\n"\
                "Report bugs to %s" % (progname, bug_address))

#版本信息
def print_version(progname):
    print ("%s version %s" % (progname, progname_version))
    print ("Copyright 2019 jonathan.")


def main(argv=None):
    #获取命令行的输入
    if argv is None:
        argv = sys.argv
    #获取执行的命令名称
    progname = os.path.basename(argv[0])
    #命令行参数解析
    try:
        try:
            opts, args = getopt.getopt(argv[1:], "hvf:", ["help","version","file"])
        except getopt.error:
            raise Usage(progname, 1)
    except Usage:
        print(sys.stderr, "for help use --help")
        return 2
    for opt_name,opt_value in opts:
        if opt_name in ('-h', '--help'):
            Usage(progname, 0)
            exit()
        if opt_name in ('-v', '--version'):
            print_version(progname)
            exit()
        if opt_name in ('-f', '--file'):
            print(opt_value)
            exit()
        

if __name__ == "__main__":
    main()

你可能感兴趣的:(python中的main)