VirtualEnv
Install
sudo pip install virtualenv
Init Dir
cd DIR
virtualenv .
Activate Env
source bin/activate
which python
PrettyTable
Install
pip install prettytable
Example Code
#!/usr/bin/python
from prettytable import PrettyTable
x = PrettyTable(["City name", "Area", "Population", "Annual Rainfall"])
x.align["City name"] = "l" # Left align city names
x.padding_width = 1 # One space between column edges and contents (default)
x.add_row(["Adelaide",1295, 1158259, 600.5])
x.add_row(["Brisbane",5905, 1857594, 1146.4])
x.add_row(["Darwin", 112, 120900, 1714.7])
x.add_row(["Hobart", 1357, 205556, 619.5])
x.add_row(["Sydney", 2058, 4336374, 1214.8])
x.add_row(["Melbourne", 1566, 3806092, 646.9])
x.add_row(["Perth", 5386, 1554769, 869.4])
print x
Example Output
+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
| Adelaide | 1295 | 1158259 | 600.5 |
| Brisbane | 5905 | 1857594 | 1146.4 |
| Darwin | 112 | 120900 | 1714.7 |
| Hobart | 1357 | 205556 | 619.5 |
| Sydney | 2058 | 4336374 | 1214.8 |
| Melbourne | 1566 | 3806092 | 646.9 |
| Perth | 5386 | 1554769 | 869.4 |
+-----------+------+------------+-----------------+
ArgParse
###术语
以PROG [-h] [--foo FOO] [bar [bar …]]为例
option- ‘–foo’attribute- ‘foo’optional arguments- ‘FOO’position arguments- ‘bar’
###ArgumentParser()
class argparse.ArgumentParser(prog=None, usage=None, description=None, epilog=None, parents=[],
formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None,
argument_default=None, conflict_handler='error', add_help=True)
prog- 指定程序名称 (default: sys.argv[0])usage- 指定Usage字符串 (default: 参数清单)description- argument help之前的一段描述文字 (default: none)epilog- argument help之后的一段描述文字 (default: none)parents- 继承其它ArgumentParser对象的选项,可以多个(List)formatter_class- 定制Help输出(通过几个可选的内置方法)prefix_chars- 自定义optional arguments的前缀,可多个 (default: ‘-‘)fromfile_prefix_chars- 当从指定文件读取参数,指定文件名时加的前缀 (default: None)argument_default- 全局默认参数 (default: None)conflict_handler- 是否解决重复定义冲突,可用于覆盖前面的定义 (usually unnecessary)add_help- 是否显示“-h, –help show this help message and exit” (default: True)
###add_argument()
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
name or flags- 多个选项(-f, –foo)或者一个positional argument(多个写成List)action- 对command-line arguments的处理store- (默认)保存参数值store_const- 配合const参数使用,保存const指定的值store_trueorstore_false- 当给出选项时保存为trueorfalseappend- 将同一个选项的多个参数保存到一个List里面append_const- 同上,不过使用const参数指定的值count- 计算选项重复次数help- ?version- 配合version参数自定义--version的输出- 自定义
nargs- 可接受的参数数量- 整数 -
nargs=2表示可接受两个,比如--foo a b=>foo=['a', 'b'] ?- 表示只接受一个参数,可配合default参数(没有给出该选项)和const参数(仅有该选项,但没有参数)使用*- 将所有参数都整合到List里面,比如a b --foo x y --bar 1 2=>bar=['1', '2'], baz=['a', 'b'], foo=['x', 'y']+- 同*,但必须至少给出一个参数,否则会报错argparse.REMAINDER- 将剩下的所有参数和选项都整合到一个List里面
- 整数 -
const- 配合action和nargs使用(可用max,sum等内置函数)default- 配合其它使用,当没有给出某选项时从default取值(可用max,sum等内置函数)type- 指定参数类型,读取后内部会做转换处理choices- 只能从一组指定值中选择参数,否则会报错required- 该参数必须有,否则报错help- 指定参数的help信息,也可禁止输出help信息metavar- 指定属性的显示名称,内部值仍然由dest指定dest- 指定属性的内部名称;默认是使用第一个长选项(--),如果全部都是短选项(-),使用第一个
###parse_args()
ArgumentParser.parse_args(args=None, namespace=None)
默认从sys.argv读取参数,创建一个空的Namespace对象存储属性
###Ohter
- 子命令
ArgumentParser.add_subparsers()- 适用于有子命令的程序
- 参数分组
ArgumentParser.add_argument_group(title=None, description=None)- 将选项分组显示
- 互斥选项
argparse.add_mutually_exclusive_group(required=False)- 互斥组中的选项不得同时出现,否则报错
- 默认参数
ArgumentParser.set_defaults(**kwargs)- 设置选项默认值,适用于某些不需要检查的选项;优先级高于default参数ArgumentParser.get_default(dest)- 获取选项默认值
- Printing Help
ArgumentParser.print_usage(file=None)ArgumentParser.print_help(file=None)ArgumentParser.format_usage()ArgumentParser.format_help()
- 局部分析
ArgumentParser.parse_known_args(args=None, namespace=None)- 分析剩下的没有定义的参数和选项被一起放到一个List中
- 自定义文件分析
ArgumentParser.convert_arg_line_to_args(arg_line)- 实现该方法,从自定义文件读取选项和参数
- 退出
ArgumentParser.exit(status=0, message=None)ArgumentParser.error(message)
- 从老的
optparse升级到新的argparse(见官方文档)