Python 使用islice在文本文件中循环

Python 使用islice在文本文件中循环,python,text,Python,Text,我想使用islice多次读取文本文件的行。目的是每次尝试获取包含列表中索引的行,然后编写仅包含这些行的文件。我尝试了下面的脚本,但我意识到(通过打印行号),尽管有for循环,程序只读取了一次文件。为什么? with open(input,'r') as inp,: sliced_file = islice(inp,None) for ind in listOfInd: print('ind ' + ind) for line_number, line in en

我想使用islice多次读取文本文件的行。目的是每次尝试获取包含列表中索引的行,然后编写仅包含这些行的文件。我尝试了下面的脚本,但我意识到(通过打印行号),尽管有for循环,程序只读取了一次文件。为什么?

with open(input,'r') as inp,:
    sliced_file = islice(inp,None)

for ind in listOfInd:    
    print('ind ' + ind)
    for line_number, line in enumerate(sliced_file,start=1):
        print(line_number)
        number, rest = line.split('\t',1)

第一次对
切片的\u文件
迭代器对象调用
枚举
函数时,将到达文件末尾。因此,下次要再次遍历文件,必须将文件指针重置为文件的开头

此外,在代码段中,流控制移出with块,文件将被关闭,无法读取

这是一个固定的代码

inp = open(input,'r')
sliced_file = islice(inp,None)
for ind in listOfInd:    
    print('ind ' + ind)
    for line_number, line in enumerate(sliced_file,start=1):
        print(line_number)
        number, rest = line.split('\t',1)
    inp.seek(0)