你的代码的问题是,在遍历文件1每一行的时候,文件2都会readlines()一次,但是除了第一次,后面由于指针问题都是空的,解决方法很简单,把文件2的readlines()先赋值给一个变量,然后对这个变量进行迭代:%%time
z=0
i=0
dictcvrcvs={}
chr1 = open('/Users/guoshuyu/Downloads/DMR_info/CG/control_vs_R-48h/c vs Rresult.txt', 'r')
chr2 = open('/Users/guoshuyu/Downloads/DMR_info/CG/control_vs_S-48h/c vs Sresult.txt', 'r')
chr1_lines=chr1.readlines() #先把结果赋值给变量,1号文件不是必须,但是为了统一整齐……
chr2_lines=chr2.readlines() #这个是必须的,不能每次循环都做一次这个动作
chr1.close() #内容都导出来了,记得关文件
chr2.close()
for Line1 in chr1_lines:
try:
line1 = Line1.strip().split('\t')
for Line2 in chr2_lines: #对列表进行迭代,就不会有空的了
try:
line2=Line2.strip().split('\t')
if (abs(int(line1[1])-int(line2[1]))<50) and (line1[0]==line2[0]):
dictcvrcvs[line1[0]]=line1[1]
i+=1
break
except IndexError:
z+=1
continue
except IndexError:
z+=1
continue
|