python getopt模块
getopt 是一个python模块, 处理命令行参数的,和sys.argv是一样的功能, 这个功能和c语言处理命令行参数的功能和函数是一样的, 例如你在命令行里边是这样运行的: python test_getopy.py -i:127.0.0.1 -p:8888 或者python test_getopt.py --ip=127.0.01 --port=8888, getopt模块将帮你处理这些参数,下边是一些常用的场景,希望能帮到你。
python 文件名字: test_getopt.py
python 文件执行参数:python test_getopt.py -p:8888 -ip:127.0.0.1
test_getopt.py 代码:
#!/usr/bin/env python import getopt import sys def main(): """ python test_getopt.py -i:127.0.0.1 -p:8888 """ options, args = getopt.getopt(sys.argv[1:], 'p:i:') for name, value in options: if name in ('-i'): # value is 127.0.0.1 print ("value: {0}".format(value)) if name in ('-p'): # value is 8888 print ("value: {0}".format(value)) if __name__ == "__main__": main()
如果你是这样运行的代码:python test_getopt.py -i:127.0.0.1 -p:8888. 那么在上边的代码中-i的name值就是127.0.0.1 -p的name值就是8888,getopt.getopt(sys.argv[1:], 'p:i:') 第一个参数就是取文件名后边的参数, 第二个参数‘p:i:’ 就是你命令行的参数是带一个'-'符号的, ':' 符号是你的参数必须有值:例如:-i:127.0.0.1.
你也可以加入-h选项,当别人输入python test_getopt.py -h 的时候会看到help的信息。代码如下
#!/usr/bin/env python import getopt import sys def usage(): print ("==========") print ("Usage:") print (". xxxxxxx") print (". xxxxxxx") print ("==========") def main(): """ python test_getopt.py -h """ options, args = getopt.getopt(sys.argv[1:], 'h') for name, value in options: if name in ('-h'): usage() if __name__ == "__main__": main()
上边的代码实例都是参数是带一个‘-’符号的, 你也可以使用带‘--’符号的参数, 代码如下:
#!/usr/bin/env python import getopt import sys def usage(): print ("=======") print ("Usage:") print ("python test_getopt.py -I:127.0.0.1 -p:8888 66 88 or python test_getopt.py --ip=127.0.0.1 --port=8888 66 88") print ("=======") def main(): """ getopt 模块的用法 """ options, args = getopt.getopt(sys.argv[1:], 'hp:i:', ['help', 'port=', 'ip=']) for name, value in options: if name in ('-h', '--help'): usage() if name in ('-p', '--port'): print ('value: {0}'.format(value)) if name in ('-i', '--ip'): print ('value: {0}'.format(value)) for name in args: # name 的值就是 上边参数实例里边的66和88 print ("name: {0}".format(name)) if __name__ == "__main__": main()
转载于https://blog.csdn.net/qq_34765864/article/details/81368754
__EOF__
作者: 随风kali
本文链接: https://www.cnblogs.com/sfsec/p/15588621.html
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接: https://www.cnblogs.com/sfsec/p/15588621.html
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!