fileinput模块可以循环一个或多个文本文件的内容。
【默认格式】
fileinput.input (files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None)
1 2 3 4 5 6 | files: #文件的路径列表,默认是stdin方式,多文件[ '1.txt' , '2.txt' ,...] inplace: #是否将标准输出的结果写回文件,默认不取代 backup: #备份文件的扩展名,只指定扩展名,如.bak。如果该文件的备份文件已存在,则 会自动覆盖。 bufsize: #缓冲区大小,默认为 0 ,如果文件很大,可以修改此参数,一般默认即可 mode: #读写模式,默认为只读 openhook: #该钩子用于控制打开的所有文件,比如说编码方式等; |
1 2 3 4 5 6 7 | fileinput.input() #返回能够用于 for 循环遍历的对象 fileinput.filename() #返回当前文件的名称 fileinput.lineno() #返回当前已经读取的行的数量(或者序号) fileinput.filelineno() #返回当前读取的行的行号 fileinput.isfirstline() #检查当前行是否是文件的第一行 fileinput.isstdin() #判断最后一行是否从stdin中读取 fileinput.close() #关闭队列 |
fileinput中有一些方法:fileinput.isfirstline()取文本文件的第一行;fileinput.filename()返回文本文件的文件名;fileinput.lineno()返回文件的行数。
使用fileinput的方法:
使用实例
1. import fileinput
for eachline in fileinput.input("article.ids.txt"):
print eachline
实现的方式其实跟readlines是一样的!
2. 打印输入的文件名称
import fileinput
for eachline in fileinput.input("article.ids.txt"):
print fileinput.filename() #打印article.ids.txt
3. 打印当前行号与行的内容
import fileinput
for eachline in fileinput.input("article.ids.txt"):
print fileinput.lineno() ,eachline
其实这个跟读文件的操作是一样的。Enumerate好像是吧!而且能够读取行号值
4. 返回是否是第一行
import fileinput
for eachline in fileinput.input("article.ids.txt"):
if fileinput.isfirstline():print eachline;break