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