您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 锦州分类信息网,免费分类信息发布

python 处理命令行参数

2024/2/8 19:55:57发布18次查看
标题写了那么久,现在现在才有时间,整理下自己的思路。首先先总结下自己对sys模块的理解。手册上对sys的描述是系统参数和系统函数,这里的系统实际上是python解释器。这个模块提供了用户可以访问的解释器变量和一些可以与解释器进行交互的功能函数。这里主要关注的就是sys.argv,其实它就是一个解释器变量,通过sys模块,我们就可以访问,并且根据自己的需要来解析。
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=']),如果只使用长命令,短命令参数必须是个空字符串。:表示参数后必须有参数,=表示长命令后必须有参数。
示例代码:
锦州分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录