Python 作为一种脚本语言,可以非常方便地用于系统(尤其是*nix系统)命令行工具的开发。Python 自身也集成了一些标准库,专门用于处理命令行相关的问题。
命令行工具的一般结构:
1. 标准输入输出
*nix 系统中,一切皆为文件,因此标准输入、输出可以完全可以看做是对文件的操作。标准化输入可以通过管道(pipe)或重定向(redirect)的方式传递:
# script reverse.py
#!/usr/bin/env python
import sys
for l in sys.stdin.readlines():
sys.stdout.write(l[::-1])
保存为 reverse.py,通过管道 | 传递:
chmod +x reverse.py
cat reverse.py | ./reverse.py
nohtyp vne/nib/rsu/!#
sys tropmi
:)(senildaer.nidts.sys ni l rof
)]1-::[l(etirw.tuodts.sys
通过重定向 < 传递:
./reverse.py < reverse.py
# 输出结果同上
2. 命令行参数
一般在命令行后追加的参数可以通过 sys.argv 获取, sys.ar