当前位置:   article > 正文

使python脚本在运行时可以附带参数的方法_python.exe -s 参数

python.exe -s 参数

使用optparse模块

optparse模块简单暴力,使用方法如下,py脚本和打包成exe的形态工具都可使用,提取参数用dest="xxxxxxx"里面的字符,如果参数不传递的话默认会提取到default="默认值"里面的值

if __name__ == '__main__':
    import optparse

    ops_obj = optparse.OptionParser()
    ops_obj.add_option("-p", "--P", dest="TestOption", default="默认值", help="说明信息")
    ops_obj.add_option("-s", "--S", dest="TestOption2", default="默认值2", help="说明信息")

    opts, args = ops_obj.parse_args()
    test_option1 = opts.TestOption
    test_option2 = opts.TestOption2
    print("-p或者--P选项的参数为", test_option1)
    print("-s或者--S选项的参数为", test_option2)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

运行样例

sys模块

sys模块获取单纯的参数

python demo.py a b c

$ cat demo.py 
#-*- coding: UTF-8 -*- 
import os
import sys

def demo():
    print sys.argv
    print len(sys.argv)
    for i in range(len(sys.argv)):
        print "parameter %s --- %s" %(i, sys.argv[i])

if __name__ == "__main__":
    demo() 

$ python demo.py a b c
['demo.py', 'a', 'b', 'c']
4
parameter 0 --- demo.py
parameter 1 --- a
parameter 2 --- b
parameter 3 --- c
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

getopt模块可以捕捉选项和参数

getopt模块可以捕捉选项和参数

主要是这个接口
options, args = getopt.getopt(args, shortopts, longopts=[])

第一个参数args:一般是sys.argv[1:]。过滤掉sys.argv[0],它是执行脚本的名字,不算做命令行参数。
第二个参数shortopts:短格式分析串。例如:“hp:i:”,h后面没有冒号,表示后面不带参数;p和i后面带有冒号,表示后面带参数。
第三个参数longopts:长格式分析串列表。例如:[“help”, “ip=”, “port=”],help后面没有等号,表示后面不带参数;ip和port后面带冒号,表示后面带参数。

而返回值options是以元组为元素的列表,每个元组的形式为:(选项串, 附加参数),如:(‘-i’, ‘192.168.0.1’)
[(‘-a’, ‘A’), (‘–apple’, ‘A’), (‘-b’, ‘B’), (‘–banana’, ‘B’), (‘-h’, ‘’)]

返回值args是个列表,其中的元素是那些不含’-‘或’–'的参数。

在命令行运行下述命令:
python test_getopt.py -i 192.168.0.1 -p 80 123 a
或着
python test_getopt.py -ip=192.168.0.1 --port=80 123 a


#encoding=utf-8
 
import getopt
import sys
 
def main(argv):
    try:
        options, args = getopt.getopt(argv, "hp:i:", ["help", "ip=", "port="])
    except getopt.GetoptError:
        sys.exit()
 
    for option, value in options:
        if option in ("-h", "--help"):
            print("help")
        if option in ("-i", "--ip"):
            print("ip is: {0}".format(value))
        if option in ("-p", "--port"):
            print("port is: {0}".format(value))
 
    print("error args: {0}".format(args))
 
if __name__ == '__main__':
    main(sys.argv[1:])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

打印如下:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/916647
推荐阅读
相关标签
  

闽ICP备14008679号