python中main()函数写法

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

#!/usr/bin/python
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 ( [命令行参数列表], ‘短选项‘, [长选项列表] )

>>> 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‘]

参考http://www.jb51.net/article/50067.htm

时间: 2024-11-02 23:21:27

python中main()函数写法的相关文章

python 中main函数总结

Python使用缩进对齐组织代码的执行,所有没有缩进的代码(非函数定义和类定义),都会在载入时自动执行,这些代码,可以认为是Python的main函数. 每个文件(模块)都可以任意写一些没有缩进的代码,并且在载入时自动执行,为了区分主执行文件还是被调用的文件,Python引入了一个变量__name__,当文件是被调用时,__name__的值为模块名,当文件被执行时,__name__为'__main__'.这个特性,为测试驱动开发提供了极好的支持,我们可以在每个模块中写上测试代码,这些测试代码仅当

如何理解Python的Main函数?

作者:蟒蛇帝国(ID:Pythondg) 难度:初级 演示环境:OS:ubuntu 16.04Python:3.6 编写 Python 代码的时候我们经常看到下面这条语句.貌似是 Python 的 Main 函数.那它具体是什么意思呢. if __name__ == '__main__':     print('hello world') 首先 Python 里有两个概念, 源码文件: ~/code_house/py_dev$ tree . ├── file1.py ├── file2.py └

Python中的函数详解

声明:转载自伯乐在线 Python中的函数,无论是命名函数,还是匿名函数,都是语句和表达式的集合.在Python中,函数是第一个类对象,这意味着函数的用法并没有限制.Python函数的使用方式就像Python中其他值一样,例如字符串和数字等.Python函数拥有一些属性,通过使用Python内置函数dir就能查看这些属性,如下代码所示: def square(x): return x**2 >>> square <function square at 0x031AA230>

【和我一起学python吧】python 中的函数

一.函数的定义: Python中使用def关键字定义函数,函数包括函数名称和参数,不需要定义返回类型,Python能返回任何类型: Python代码   #没有返回值的函数,其实返回的是None def run(name): print name,'runing' #函数体语句从下一行开始,并且第一行必须是缩进的 >>>run('xiaoming') xiaoming runing >>>print run('xiaoming') xiaoming runing Non

在C++工程中main函数之前跑代码的廉价方法(使用全局变量和全局函数)

[cpp] view plain copy // test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <windows.h> #include <crtdbg.h> /// 在C++工程中main函数之前跑代码的廉价方法 /// 利用全局变量可以赋可变初值的事实 /// mainCRTStartup() => _cin

Python的main函数

初学Python,写C++时,习惯写上main函数,作为程序入口, 但是,在写Python时,只能看见 __name__ == "__main__", 于是,探个究竟,Python程序从哪开始?啧啧,虽然它多数是脚本~ 转自下面链接的一段话: http://blog.163.com/benben_long/blog/static/199458243201212123099/ if __name__=="__main__":     print("main&

python中的函数存入list中的实例

最近由于接触了python这个强大的东西,在写代码时考虑到代码的扩展性,就想到了将python的函数名存入list中.有点像习惯的c/c++中的函数指针的意思. 下面上代码: 1 # coding=utf-8 2 #!/usr/bin/python 3 #脚本的用法 python nn_daemon.py 4 import json, urllib, urllib2, subprocess, sys, os, logging, time, socket, time, calendar, date

Python中split()函数的用法及实际使用示例

Python中split()函数,通常用于将字符串切片并转换为列表. 一.函数说明: split():语法:str.split(str="",num=string.count(str))[n] 拆分字符串.通过制定分隔符将字符串进行切片,并返回分割后的字符串列表[list] 参数:str:分隔符,默认为空格,但不能为空("") num: 表示分割次数.如果指定num,则分割成n+1个子字符串,并可将每个字符串赋给新的变量 [n]: 选取第n个分片,即第n个字符串,从

python中filter函数

python中filter()函数 filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list. 例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数: def is_odd(x): return x %