1.最常用的sys.argv[],这个不多谈

2.形如

dahu@dahu-OptiPlex-:~/json_folder$ python sub1.py -abb -oaaa --output=out -caa -abb3 --output=papa file1 -abb3 file2

输出:

============ opts ==================
[('-a', 'bb'), ('-o', 'aaa'), ('--output', 'out'), ('-c', 'aa'), ('-a', 'bb3'), ('--output', 'papa')] ============ args ==================
['file1', '-abb3', 'file2'] -a ==> bb
-o ==> aaa
--output ==> out
-c ==> aa
-a ==> bb3
--output ==> papa

code:

#coding=utf-8
#!/usr/bin/env python
import sys,getopt
# 短格式 后面没有冒号:表示后面不带参数,后面有冒号表示后面需要参数
# 长格式 后面没有等号 =,表示后面不带参数,其他有 =,表示后面需要参数
# 注意一旦出现不带长短格式的标记'-',就进入arg模式了,例如例子中file1后面的-abb3就认为是arg,而不是opt def usage():
print("Usage:%s [-a|-o|-c] [--help|--output] args...." % sys.argv[0]) if "__main__" == __name__:
try:
opts, args = getopt.getopt(sys.argv[1:], "a:o:c:", ["help", "output="]) print("============ opts ==================")
print(opts)
print len(opts) print("============ args ==================")
print(args)
print len(args)
# check all param
for opt, arg in opts:
if opt in ("-h", "--help"):
usage()
sys.exit(1)
elif opt in ("-t", "--test"):
print("for test option")
else:
print("%s ==> %s" % (opt, arg)) except getopt.GetoptError:
print("getopt error!")
usage()
sys.exit(1)

python脚本传入参数--精讲(getopt模块)的更多相关文章

  1. 第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求

    第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求 selenium模块 selenium模块为 ...

  2. python 脚本带参数

    如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块:sys参数个数:len(sys.argv)脚本名:    sys.argv[0]参数 ...

  3. Linux系统 awk sed R脚本 python脚本传入变量

    sed 传入变量: chrI="chr2";sed -n "/$chrI/p" clippointpos.csv  #变量用$var表示,把sed的单引号变为双 ...

  4. java调用python脚本并向python脚本传递参数

    1.安装Eclipse 先安装jdk,再安装Eclipse,成功后开始建立py_java项目,在这个项目的存储目录SRC下建立test包,在test包中New-Class,新建MyDemo类,建好完成 ...

  5. shell调用python脚本,并且向python脚本传递参数

    1.shell调用python脚本,并且向python脚本传递参数: shell中: python test.py $para1 $para2 python中: import sys def main ...

  6. shell变量自增 || Python脚本接收参数

    一.shell变量自增a=1a=$(($a+1))a=$[$a+1]a=`expr $a + 1`let a++ let a+=1 ((a++)) echo $a 二.python脚本接收参数 fro ...

  7. python 脚本传递参数

    python查找指定字符 #!/usr/bin/env python import sys import re f = open("log.txt", "rb" ...

  8. python脚本传递参数

    给python程序传递参数 运行python脚本时有时需要执行实传递参数 在linux下: [root@Test ~]# cat /opt/python.py #!/usr/local/bin/pyt ...

  9. python函数传入参数(默认参数、可变长度参数、关键字参数)

    1.python中默认缺省参数----定义默认参数要牢记一点:默认参数必须指向不变对象! 1 def foo(a,b=1): 2 print a,b 3 4 foo(2) #2 1 5 foo(3,1 ...

随机推荐

  1. 相同内容 yaml 与 json 格式对比

    关联数组: yaml person: name: 张三 age: 24 json { "person": { "name": "张三", . ...

  2. 「Linux+Django」uwsgi服务启动(start)停止(stop)重新装载(reload)

    转自:http://blog.51cto.com/12482328/2087535?cid=702003 1. 添加uwsgi相关文件 在之前的文章跟讲到过centos中搭建nginx+uwsgi+f ...

  3. 这年头不会点Git真不行!!!

    版本控制 说到版本控制,脑海里总会浮现大学毕业是写毕业论文的场景,你电脑上的毕业论文一定出现过这番景象! 1 2 3 4 5 6 7 8 9 10 11 毕业论文_初稿.doc 毕业论文_修改1.do ...

  4. Windows 安装 RabbitMQ

    RabbitMQ概述 RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发.Ra ...

  5. 使用RVM轻松部署Ruby环境

    Ruby用得不多,但发现有业务需要部署指定的版本和插件.起初找了一些Fedora的src.rpm重新打包,发现依赖问题比较多,最终还是费劲的把el6的包编出来了. 不巧今天又有业务要求el5的包,原本 ...

  6. Parencodings(模拟)

    ZOJ Problem Set - 1016 Parencodings Time Limit: 2 Seconds      Memory Limit: 65536 KB Let S = s1 s2 ...

  7. MySQl学习-——Mysql体系结构与Mysql存储引擎

    Mysql体系结构与Mysql存储引擎 Mysql体系结构 mysql体系结构图:

  8. [ERROR] Too many connections 尚未解决

    [ERROR] - com.alibaba.druid.support.logging.Log4j2Impl.error(Log4j2Impl.java:53) - create connection ...

  9. 使用 WebSockets 技术的 9 个应用场景

    没有其他技术能够像WebSocket一样提供真正的双向通信,许多web开发者仍然是依赖于ajax的长轮询来实现.对Websocket缺少热情,也许是因为多年前他的安全性的脆弱,抑或者是缺少浏览器的支持 ...

  10. 【BZOJ】1087: [SCOI2005]互不侵犯King

    [算法]状态压缩型DP [题解]http://www.cnblogs.com/xtx1999/p/4620227.html (orz) https://www.cnblogs.com/zbtrs/p/ ...