sys.argv
描述:记录命令行参数
类别:列表(可以使用列表方法来访问)
我用的系统是rhl 5.3,python 版本为2.4,写了个测试程序pytest.py来观察python解释器调用时,sys.agrv的元素的值:
点击(此处)折叠或打开
#!/usr/bin/env python
import sys
def main(argv):
for arg in argv:
print arg
if __name__ == '__main__':
main(sys.argv)
那我们开始调用测试脚本:
python pytest.py 输出结果:pytest.py, 原始列表为['pytest.py']
python pytest.py -c 0 a:1:b 输出结果为:pytest.py -c 0 a:1:b。说明解释器是以空格或者制表符来区分参数。
python /root/python_scripts/pytest.py 输出结果为: /root/python_scripts/pytest.py。记录的是绝对路径。
chmod +x pytest.py;./pytest.py 输出结果为: ./pytest.py
/root/python_scripts/pytest.py 输出结果为: /root/python_scripts/pytest.py
注:说明sys.argv[0]保存的是可执行程序名,后面是命令行参数,以空格为区分点。
下面介绍下c语言风格的命令行解析模块getopt。这个支持短命令(-a)和长命令模式(--add)。getopt的调用方式为:getopt.getopt(args, 'hvo:')或者getopt.getopt(args,'hvo:', ['help', 'version', 'output=']),如果只使用长命令,短命令参数必须是个空字符串。:表示参数后必须有参数,=表示长命令后必须有参数。
示例代码: