14.9.2 进度元数据
在前面的例子中,文件名和正在处理的行号并不重要。但有时其他工具(如类grep的搜索工具)可能需要这个信息。fileinput包含一些函数来访问有关当前行的所有元数据(filename(),filelineno()和lineno())。
import fileinput
import re
import sys
pattern = re.compile(sys.argv[1])
for line in fileinput.input(sys.argv[2:]):
if pattern.search(line):
if fileinput.isstdin():
fmt = '{lineno}:{line}'
else:
fmt = '{filename}:{lineno}:{line}'
print(fmt.format(filename=fileinput.filename(),
lineno=fileinput.filelineno(),
line=line.rstrip()))
可以用一个基本的模式匹配循环来查找串"fileinput"在这些示例源文件中的出现。
还可以从标准输入读取文本。