==getopt 模块==

``getopt`` 模块包含用于抽出命令行选项和参数的函数,
它可以处理多种格式的选项. 如 [Example 2-23 #eg-2-23] 所示. 其中第 2 个参数指定了允许的可缩写的选项. 选项名后的冒号(:) 意味这这个选项必须有额外的参数. ====Example 2-23. 使用 getopt 模块====[eg-2-23] ```
File: getopt-example-1.py import getopt
import sys # simulate command-line invocation
# 模仿命令行参数
sys.argv = ["myscript.py", "-l", "-d", "directory", "filename"] # process options
# 处理选项
opts, args = getopt.getopt(sys.argv[1:], "ld:") long = 0
directory = None for o, v in opts:
if o == "-l":
long = 1
elif o == "-d":
directory = v print "long", "=", long
print "directory", "=", directory
print "arguments", "=", args *B*long = 1
directory = directory
arguments = ['filename']*b*
``` 为了让 ``getopt`` 查找长的选项, 如 [Example 2-24 #eg-2-24] 所示,
传递一个描述选项的列表做为第 3 个参数. 如果一个选项名称以等号(=) 结尾,
那么它必须有一个附加参数. ====Example 2-24. 使用 getopt 模块处理长选项====[eg-2-24] ```
File: getopt-example-2.py import getopt
import sys # simulate command-line invocation
# 模仿命令行参数
sys.argv = ["myscript.py", "--echo", "--printer", "lp01", "message"] opts, args = getopt.getopt(sys.argv[1:], "ep:", ["echo", "printer="]) # process options
# 处理选项
echo = 0
printer = None for o, v in opts:
if o in ("-e", "--echo"):
echo = 1
elif o in ("-p", "--printer"):
printer = v print "echo", "=", echo
print "printer", "=", printer
print "arguments", "=", args *B*echo = 1
printer = lp01
arguments = ['message']*b*
``` ```
[!Feather 注: 我不知道大家明白没, 可以自己试下:
myscript.py -e -p lp01 message
myscript.py --echo --printer=lp01 message
]
```

最新文章

  1. [deviceone开发]-openPage的动画效果示例
  2. 【Alpha版本】十天冲刺——日志集合贴
  3. 苹果微信input输入框被键盘遮挡
  4. bootstrap表格内容跑到表格外面的处理办法
  5. 记录archlinux中安装pcl的大致流程
  6. 现在的SQLSERVER数据库监控软件有哪些?
  7. July 20th, Week 30th Wednesday, 2016
  8. 获取Spring的ApplicationContext的方法
  9. sublime 安装常用插件
  10. Timer定时器
  11. Android 获取当前日期算前一年、前一月、前一天Calendar
  12. KVO底层实现原理,仿写KVO
  13. python堆栈实现
  14. 在阿里云服务器上安装完成并启动Tomcat后,通过http不能访问--解决办法
  15. 简单工厂模式demo
  16. Hive记录-hive权限控制
  17. godaddy如何联系客服帮助的技巧和方法
  18. vue-cli的webpack模板项目配置文件分析,配置信息详解
  19. MyBatis代理开发(2)
  20. mybatis学习 十四 resultMap标签 一对一(联合查询)

热门文章

  1. what difference between libfm and libffm
  2. N年的经验在别人眼里是怎么看的?
  3. 防盗链Nginx设置图片防盗链,设置无效的请仔细看红字
  4. Effective C++:条款26:尽可能延后变量定义式的出现时间
  5. 笔记本样式的EditText控件(每行均带下划虚线)
  6. Java从零开始学三十三(JAVA IO- File类)
  7. 转:C#委托与事件
  8. plsql 快捷键配置
  9. Web应用中的普通java程序获取资源文件
  10. Oracle的PLSQL别名中文出现乱码解决方法