一、与命令行相关的python语言特性
使用sys.argv获取命令行参数
sys库中有一个保存所有命令行参数的argv列表,在使用前需要先导入sys库
import sys
其中sys.argv[0]表示python程序本身,sys.argv[1]....表示依次表示执行程序时所带的命令行参数
在处理sys.argv列表的时候需要注意处理数组越界的问题,如果执行程序时没有添加命令行参数,那么sys.argv[1]及后续的列表元素的访问都会出错。
使用sys.stdin和fileinput读取标准输入
python的sys库中有三个标准文件描述符
- stdin - 标准输入
- stdout - 标准输出
- stderr - 标准错误
fileinput是python的一个标准库,它会遍历sys.argv列表,依次读取命令行参数重给出的多个文件,fileinput提供了一系列方法显示当前所读取文件的相关内容
fileinput.filename() - 当前正在读取的文件名
fileinput.fileno() - 当前读取文件的描述符
fileinput.filelineno() - 正在读取的文件的行号
fileinput.isfirstline() - 是否正在读取文件第一行
fileinput.isstdin() - 是否从标准输入读取(还是文件中读取)
使用SystemExit异常打印错误信息
sys.stdout和sys.stderr的输出都会打印到命令行
使用getpass库读取密码
getpass是一个非常简单的Python标准库,主要包含getuser函数和getpass函数。前者用来从环境变量中获取用户名,后者用来等待用户输入密码。getpass函数与input函数的区别在于,它不会将我们输入的密码显示在命令行中,从而避免我们输入的密码被他人看到。
网友评论