我有一个文件,其中一个模式是重复每4行。我想看看文件,如果第二行(在4行代码块内)超过2000个字符,我想将4行代码块写到输出文件中。
首先,我应该说,我是一个生物学家,而不是CS,所以我对编程比较陌生。我正在尝试使用enumerate来计算我所在的行,并且enumerate是一个可迭代的,所以我相信我可以在它上面调用下一个函数。然而,当我运行下面的代码块时,我最终打印了组中的所有四行,而理论上,我应该只打印第三行和第四行。但是,当我运行这段代码时,我最终打印了所有行。这就是令人困惑的部分。
with open('file', 'r') as f:
for i, line in enumerate(f, 1):
if i % 4 == 1:
first_line = line
if i % 4 == 2:
if len(line.strip()) > 2000:
seq_line = line
third_line = next(f)
fourth_line = next(f)
print(third_line)
print(fourth_line)
else:
pass
即使我试着做一些简单的事情,比如:
with open('file', 'r') as f:
for i, line in enumerate(f, 1):
if i % 4 == 1:
first_line = line
if i % 4 == 2:
print(line)
print(next(f))
我最终得到了所有的行,我仍然不明白。
谢谢。
https://stackoverflow.com/questions/56656705
复制相似问题