常用python工具速查

本文对python中经常使用的工具进行总结,方便以后的调用。主要涉及命令行参数处理时间处理日志处理,后续希望可以根据实际需要对相应工具进行封装。

命令行参数处理argparse

argparse.ArgumentParser类经常使用的参数是description,指定的是在参数帮助之前出现的说明文字。

1
2
3
4
5
6
7
8
9
10
11
In [1]: import argparse

In [2]: parser = argparse.ArgumentParser(description="Note for argparse")

In [3]: parser.print_help()
usage: ipython [-h]

Note for argparse

optional arguments:
-h, --help show this help message and exit

有时候,因为一些特殊原因,需要显示较多的description,所以我们希望description在显示时可读性强一些,可以通过formatter_class参数实现,该参数一共可以有四种选择,其中argparse.RawDescriptionHelpFormatter比较有用,可以按照description原生的格式显示。效果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
>>> parser = argparse.ArgumentParser(
... prog='PROG',
... formatter_class=argparse.RawDescriptionHelpFormatter,
... description=textwrap.dedent('''\
... Please do not mess up this text!
... --------------------------------
... I have indented it
... exactly the way
... I want it
... '''))
>>> parser.print_help()
usage: PROG [-h]

Please do not mess up this text!
--------------------------------
I have indented it
exactly the way
I want it

optional arguments:
-h, --help show this help message and exit

add_argument()函数用来定义需要解析的命令行参数。有以下几个常用的参数

  1. nameorflags

    一般-f--foo表示可选的参数,bar表示位置参数。当调用parse_args()函数时,首先会解析-开头的可选参数,剩下的参数依次交给位置参数。

  2. nargs 指定解析的参数数目

    • N 该参数后面应该跟着N个命令行参数,解析时会放到一个list中
    • * 所有的命令行参数均放到一个list中,对于位置参数不能有多个nflags='*'
    • + 需要有一个及以上的命令行参数
  3. default 默认值

  4. type 默认是str

  5. choices 命令行参数必须是给定的参数中的一个

  6. required 可选参数是否是必须给出的

  7. help 命令行参数的提示信息

最后使用parse_args()即可完成解析。

1
2
3
4
5
6
7
8
parser = argparse.ArgumentParser(description="Note for Argparse")
parser.add_argument('-p', '--path', required=True, help='file path')
parser.add_argument('-s', '--save_path', required=True, help='save results path')
parser.add_argument('-d', '--date', nargs='+', required=True, help='date list')
parser.add_argument(
'-f', '--format', dest='format', choices=['json', 'csv'],
default='csv', help='results store format')
args = parser.parse_args()

单步调试工具ipdb

1. 安装
1
pip install ipdb
2. 启动
1
python -m ipdb run.py
3. 快捷键
1
2
3
4
5
6
7
8
9
h :帮助文档
b n :给第n行打上断点
c :continue
s :step into
n :next
l :显示运行附近代码
condition breakpoint cond :直到cond为true才触发breakpoint的断点
interact :进入Python交互模式
restart: 重启

时间处理模块