第一轮后python循环失败?

时间:2017-11-09 15:33:43

标签: python

我试图解析大量样本的距离矩阵:输入文件看起来像这样。

sample 1    sample 2    500
sample 1    sample 3    109

我有一份样本清单,例如:

sample 1
sample 2
sample 3

我试过这个:

from sys import argv
import csv
script, guuids, infile, distfile, out = argv
matrix = open(distfile, 'rb')
matrix_reader=csv.reader(matrix, delimiter='\t')
guuids_list=[]
with open(guuids, 'rb') as guuid_file:
        for line in guuid_file:
                guuids_list.append(line.strip())


with open(infile, 'rb') as guuids:

        counter=0       
        csv_reader=csv.reader(guuids, delimiter='\t')


        for line in guuids_list:
                print guuids_list[counter], guuids_list[counter + 1]
                for mline in matrix_reader:


                        if guuids_list[counter].strip() ==mline[0] and guuids_list[counter + 1].strip() == mline[1]:
                                print 'no'
                                print line.strip(), guuids_list[counter + 1], mline[2]
                        elif guuids_list[counter + 1].strip() ==mline[0] and guuids_list[counter].strip() == mline[1]:
                                print 'yes'
                                print line.strip(), guuids_list[counter + 1], mline[2]
                counter += 1

print guuids_list[1], guuids_list[2]

这适用于前两个样本,但之后没有打印,尽管事实上所有以下样本组合都在距离矩阵中明确看到...任何想法如何解决它?

1 个答案:

答案 0 :(得分:0)

我在python 3.4中运行你的程序,发现通过将for loop更改为while loop,你的问题就解决了,但你使用的python 2大约一天前我卸载了所以没有确定它是否适用于您的python模型。 试试

while line in guuids: