gpt4 book ai didi

python - 使用 islice 循环遍历文本文件

转载 作者:太空宇宙 更新时间:2023-11-03 18:33:03 24 4
gpt4 key购买 nike

我想使用 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)

最佳答案

第一次在 sliced_file 迭代器对象上调用 enumerate 函数时,将到达文件末尾。因此,下次要再次遍历文件时,文件指针必须重置到文件的开头。

此外,在您的代码片段中,流程控制移出 with block ,文件将关闭并且无法读取。

这是一个固定代码。

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)

关于python - 使用 islice 循环遍历文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22092204/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com