Fileinput模块
fileinput是python提供的标准库,使用fileinput模块可以依次读取命令行参数中给出的多个文件。也就是说,它可以遍历 sys.argv[1:],并按行读取列表中的文件。如果该列表为空,则fileinput默认读取标准输入中的内容。
fileinput的使用方法非常简单,大部分情况下,我们直接调用fileinput模块的input方法按行读取内容即可。
import fileinput for line in fileinput.input(): print(line,end='')
使用方法
python3 read_from_fileinput.py < /etc/hosts python3 read_from_fileinput.py /etc/hosts python3 read_from_fileinput.py /etc/hosts /etc/resolv.conf cat /etc/hosts | python3 read_from_fileinput.py
其他属性
由于fileinpiut可以读取多个文件,所以它提供了一些方法让我们知道当前读取的内容属于哪一个文件。
- filename:当前正在读取的文件名称
- fileno:文件的描述符
- filelineno:正在读取的行是当前文件的第几行
- isfirstline:正在读取的行是否是当前文件的第一行
- isstdin:正在读取内容是否来自于标准输入的内容
import fileinput for line in fileinput.input(): meta = [fileinput.filename(),fileinput.fileno(),fileinput.filelineno(),fileinput.isfirstline(),fileinput.isstdin()] print(line,end='') print(*meta)