博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python模块
阅读量:5327 次
发布时间:2019-06-14

本文共 2639 字,大约阅读时间需要 8 分钟。

一. getopt

注意for和if后面的 : ,它可以保证下行的正常缩进,而python就是根据缩进来执行代码的。

1 #!/usr/bin/python3 2 import sys 3 import getopt 4  5 options,args = getopt.getopt(sys.argv[1:], 'p:i:', ['ip = ', 'port = ']) 6 for name, value in options: 7     if name in('-i', '--ip'): 8         print 'ip is ---- ', value 9     if name in('-p','--port'):10         print 'port is ---- ', value

python中 getopt 模块是专门用来处理命令行参数的

函数getopt(args, shortopts, longopts = [])

参数args一般是sys.argv[1:]

shortopts 短格式 (-) 

longopts 长格式(--) 

命令行中输入:

python test.py -i 127.0.0.1 -p 80 55 66输出:ip is ---- 127.0.0.1port is ---- 80python test.py --ip=127.0.0.1 --port=80 55 66 输出:ip is ---- =127.0.0.1port is ---- =80

二.ConfigParser

ConfigParser模块get官方文档解释如下:

The ConfigParser class extends some methods of the RawConfigParser interface, adding some optional arguments.

ConfigParser.get(section, option[, raw[, vars]])

Get an option value for the named section. If vars is provided, it must be a dictionary. The option is looked up in vars (if provided), section, and in defaults in that order.

All the '%' interpolations are expanded in the return values, unless the raw argument is true. Values for interpolation keys are looked up in the same manner as the option.

ConfigParser.items(section[, raw[, vars]])

Return a list of (name, value) pairs for each option in the given section. Optional arguments have the same meaning as for the get() method.

New in version 2.3.

简单来说就是:获取命名部分的选项值

ConfigParser.get(section,option [,raw [,vars]])
section 配置名
option 选项名
raw bool类型 可选参数,默认为False 
vars dict类型 可选参数

如果提供了vars 那么获取配置选项值得规则如下

先在vars中寻找,如果找到就使用vars中的值
如果找不到 就是用默认值
前提是raw的值是False

以下是测试代码

文件test.conf内容如下

1 [Section1]2 foo=%(bar)s is %(baz)s!3 baz=fun4 bar=Python

测试代码:

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3  4 import ConfigParser 5 import string, os 6 cf = ConfigParser.ConfigParser() 7 cf.read("test.conf") 8 res = cf.get('Section1', 'foo') 9 print "默认情况下, raw=False, 此时输出 %s" % res10 res = cf.get('Section1', 'foo', raw=False)11 print "raw=False, 无参数vars 此时等同于默认输出:%s" % res12 res = cf.get('Section1', 'foo', raw=True)13 print "raw=True, 无参数vars 此时等输出未被匹配原字符:%s" % res14 res = cf.get('Section1', 'foo', raw=False, vars={
'bar': 'Documentation','baz': 'evil'})15 print "raw=False, vars存在 此时使用vars中的值进行匹配:%s" % res16 res = cf.get('Section1', 'foo', raw=True, vars={
'bar': 'Documentation', 'baz':'sdsd'})17 print "raw=True, vars存在 此时vars不生效,输出未被匹配原字符:%s" % res18 res = cf.get('Section1', 'foo', raw=False, vars={
'bar': 'Documentation'})19 print "raw=False, vars存在,但只包含一个值, 此时另一个值取默认匹配值,输出未:%s" % res

输出如下

 输出,最后一行为raw = False

 

转载于:https://www.cnblogs.com/Lunais/p/8862755.html

你可能感兴趣的文章
织梦MIP文章内容页图片适配百度MIP规范
查看>>
点击复制插件clipboard.js
查看>>
[Kali_BT]通过低版本SerialPort蓝牙渗透功能手机
查看>>
C语言学习总结(三) 复杂类型
查看>>
HNOI2018
查看>>
【理财】关于理财的网站
查看>>
Ubunt中文乱码
查看>>
《当幸福来敲门》读后
查看>>
【转】系统无法进入睡眠模式解决办法
查看>>
省市县,循环组装,整合大数组
查看>>
stm32中字节对齐问题(__align(n),__packed用法)
查看>>
like tp
查看>>
posix多线程有感--线程高级编程(线程属性函数总结)(代码)
查看>>
spring-使用MyEcilpse创建demo
查看>>
DCDC(4.5V to 23V -3.3V)
查看>>
kettle导数到user_用于left join_20160928
查看>>
activity 保存数据
查看>>
typescript深copy和浅copy
查看>>
linux下的静态库与动态库详解
查看>>
hbuilder调底层运用,多张图片上传
查看>>