我有一个包含SAMfields行的文件,其中包含不同制表符分隔字段中的信息和DNA序列。每一行都是一个独特的样本,但每两行都是耦合(配对),所以我想同时从两行中提取信息。
虽然我可以逐行轻松地从这些字段中提取信息,但我希望能够同时分析这两行。是否有循环(或逐行操纵循环的方法)来完成这项工作?
答案 0 :(得分:3)
你可以使用itertools做你想做的事。更具体地说izip。我认为它会对你有益,因为它对你的记忆友好,你可以挖掘DNA数据。
import itertools
with open(file) as f:
for l,j in itertools.izip(f,f):
print l,j
答案 1 :(得分:0)
您可以使用所有奇数行压缩所有偶数行。所以,你可以这样做:
with open(myFile) as inputFile:
for sequence in zip(inputFile[::2], inputFile[1::2]):
print(sequence) # prints lines 0,1 then lines 2,3 etc.
答案 2 :(得分:0)
更灵活的方法是使用生成器:
def line_pairs(file):
file_iter = iter(file)
while True:
line1 = next(file_iter)
line2 = next(file_iter)
yield (line1, line2)
for line1, line2 in line_pairs(file):
# do what you want with line1 and line2 available at the same time
现在,如果您意识到需要专门处理某些线条(例如剥离空白线条),您只需修改生成器即可。