徐高翔的个人网站

python实用模块推荐(1)_click_pathlib

2018-10-23

软硬件环境

  • ubuntu 18.04 64bit
  • anaconda with python 3.6
  • click
  • pathlib

click模块

click是一个创建命令行接口的第三方python库,是Command Line Interface Creation Kit的缩写。click具有高度可配置、代码量更少、代码更加优雅等特点。是argparse的升级版。

安装click

1
pip install click
1
2
3
4
5
6
7
8
9
10
11
12
13
import click

@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--name', prompt='Your name',
help='The person to greet.')
def hello(count, name):
"""Simple program that greets NAME for a total of COUNT times."""
for x in range(count):
click.echo('Hello %s!' % name)

if __name__ == '__main__':
hello()

@click.command()表示在某个方法上接收命令行参数,@click.option表示跟的具体参数,一个参数接一个@click.option--count跟方法hello里的第一个参数名count保持一致。

运行上面程序,输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
xugaoxiang@ubuntu:~/Downloads$ python click_demo.py 
Your name: xugaoxiang
Hello xugaoxiang!

xugaoxiang@ubuntu:~/Downloads$ python click_demo.py --count 5
Your name: xugaoxiang
Hello xugaoxiang!
Hello xugaoxiang!
Hello xugaoxiang!
Hello xugaoxiang!
Hello xugaoxiang!

xugaoxiang@ubuntu:~/Downloads$ python click_demo.py --count 5 --name xgx
Hello xgx!
Hello xgx!
Hello xgx!
Hello xgx!
Hello xgx!

可以通过的--help来查看具体的参数情况

1
2
3
4
5
6
7
8
9
xugaoxiang@ubuntu:~/Downloads$ python click_demo.py --help
Usage: click_demo.py [OPTIONS]

Simple program that greets NAME for a total of COUNT times.

Options:
--count INTEGER Number of greetings.
--name TEXT The person to greet.
--help Show this message and exit.

pathlib模块

python本身是跨平台的编程语言,但是在处理文件路径时经常会碰到\(windows)和/(类unix)的问题,以前的做法可能是先判断下当前的系统平台,然后在做路径拼接(使用os.path对象)的时候选择适当的分隔符(\或者/)。pathlib这个模块就完美解决了这个问题,它是Python3.4之后的标准库,是比os.path更高抽象级别的对象。

1
2
3
4
5
6
7
8
9
10
11
12
from pathlib import Path

path = Path(__file__)

print(path.suffix)
print(path.stem)
print(path.name)
print(path.parent)

directory = Path('~')
path1 = directory / 'dj.jpeg'
print(path1)

执行上述脚步,得到输出

1
2
3
4
5
6
xugaoxiang@ubuntu:~/Downloads$ python pathlib_demo.py 
.py
pathlib_demo
pathlib_demo.py
.
~/dj.jpeg

Path的常用方法及属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Path.is_dir()  # 判断是否是目录
Path.resolve() # 返回绝对路径
Path.open() # 打开文件
Path.exists() # 是否存在
Path.iterdir() # 遍历目录的子目录或文件
Path.with_suffix() # 更改路径后缀
Path.joinpath() # 拼接路径
Path.stat() # 返回路径信息(同`os.stat()`)
Path.mkdir() # 创建目录
Path.rename() # 重命名路径

Path.root # 返回路径的根目录
Path.parents # 返回所有上级目录的列表
Path.drive # 返回驱动器名称

参考资料

推荐文章(由hexo文章推荐插件驱动)

使用支付宝打赏
使用微信打赏

请博主喝咖啡!