python中main()函数写法

枫铃3年前 (2021-09-30)Python225

顶顶大名的Guido van Rossum(Python之父)推荐的main写法:

import sys
import getopt

class Usage(Exception):
    def __init__(self, msg):
        self.msg = msg

def main(argv=None):
    if argv is None:
        argv = sys.argv
    try:
        try:
            opts, args = getopt.getopt(argv[1:], "h", ["help"])
        except getopt.error, msg:
            raise Usage(msg)
    except Usage, err:
        print >>sys.stderr, err.msg
        print >>sys.stderr, "for help use --help"
        return 2

if __name__ == "__main__":
    sys.exit(main())

getopt模块用于抽出命令行选项和参数,也就是sys.argv。

命令行选项使得程序的参数更加灵活。支持短选项模式和长选项模式

opts, args = getopt.getopt( sys.argv[1:], shortargs, longargs )  

getopt.getopt ( [命令行参数列表], ‘短选项’, [长选项列表] )

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> import getopt, sys
>>> arg = '-a -b -c foo -d bar a1 a2'
>>> optlist, args = getopt.getopt( sys.argv[1:], 'abc:d:' )
>>> optlist
[('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')]
>>> args
['a1', 'a2']
>>> arg = '--condition=foo --testing --output-file abc.def -x a1 a2'
>>> optlist, args = getopt.getopt( sys.argv[1:], 'x', ['condition=', 'output-file=', 'testing'] )
>>> optlist
[ ('--condition', 'foo'), ('--testing', ''), ('--output-file', 'abc.def'), ('-x','') ]
>>> args
['a1', 'a2']

相关文章

Python条件判断if、for、while if

if条件判断 if 条...

10个python使用技巧

1. 用ZIP处理列表 假设要合并相同长度的列表并打印结果。同样有一种更通用的方式,即用zip()函数获得想要的结...

python 两种多线程比较

python 两种多线程比较

首先我是为了把这56w左...

【python3】通过hashlib 和base64 对字符串进行加密

这篇文章是讲述 如何通过hashlib 和base64 对字符串进行加密的 hashlib 强大的hashlib,提供了用于加密相关的操作...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。