如何在python中执行块循环
我有一个100行的文件。我正在把它读入python如何在python中执行块循环,python,Python,我有一个100行的文件。我正在把它读入python Input=[line.rstrip()用于打开的行(“Input.txt”)] 输入有100行,但我有一个函数,一次只能处理20行 我该如何做以下事情: 输入为行的(20行)的: 魔术功能(线条) 我想我要找的术语是分块还是迭代?但我觉得我搜索得不对,因为我找到的信息似乎比它应该的更复杂。尝试将主列表分为20个子列表,然后进行处理 Ex: Input = [line.rstrip() for line in open("input.txt")
Input=[line.rstrip()用于打开的行(“Input.txt”)]
输入有100行,但我有一个函数,一次只能处理20行
我该如何做以下事情:
输入为行的(20行)的:
魔术功能(线条)
我想我要找的术语是分块还是迭代?但我觉得我搜索得不对,因为我找到的信息似乎比它应该的更复杂。尝试将主列表分为20个子列表,然后进行处理 Ex:
Input = [line.rstrip() for line in open("input.txt")]
InPut = [Input[line:line+20] for line in range(0, len(Input), 20)]
for chunk in Input:
for line in chunk:
#process
尝试将主列表分为20个子列表,然后进行处理 Ex:
Input = [line.rstrip() for line in open("input.txt")]
InPut = [Input[line:line+20] for line in range(0, len(Input), 20)]
for chunk in Input:
for line in chunk:
#process
如果您的文件很大,那么运行
Input=[line.rstrip()for line in open(“Input.txt”)]
将占用大量内存。最好在每次阅读20行的同时对其进行流式处理:
lines = []
for idx, l in enumerate(open("input.txt")):
lines.append(l.rstrip())
if (idx + 1) % 20 == 0:
for line in lines:
# process
lines = [] # reset
# process any last remaining lines that wasn't caught in the modulo if
for line in lines:
# process
如果您的文件很大,那么运行
Input=[line.rstrip()for line in open(“Input.txt”)]
将占用大量内存。最好在每次阅读20行的同时对其进行流式处理:
lines = []
for idx, l in enumerate(open("input.txt")):
lines.append(l.rstrip())
if (idx + 1) % 20 == 0:
for line in lines:
# process
lines = [] # reset
# process any last remaining lines that wasn't caught in the modulo if
for line in lines:
# process