涉及两个文件的Python嵌套循环
我有两个文件:一个叫做ranges.txt,里面每行有两个用制表符分隔的整数;另一个叫做values.txt,里面的值也是用制表符分隔,第一项是一个整数。ranges.txt里的整数表示一个范围的起始和结束点,我想知道在这个范围内,有多少个values.txt里的整数符合条件。作为起步,我写了这段代码:
RangesFile = open('ranges.txt', 'r')
ValuesFile = open('values.txt', 'r')
for Line in RangesFile:
RangesFile.next()
print Line
Line = Line.strip('\n')
RangeValues = Line.split('\t')
Start = int(RangeValues[0])
End = int(RangeValues[1])
print Start
print End
for Line in ValuesFile:
Line = Line.strip('\n')
ElementList = Line.split('\t')
SNP = int(ElementList[0])
print SNP
print 'yes' if Start <= SNP <= End else 'no'
RangesFile.close()
ValuesFile.close()
我用两个范围和两个整数的测试文件得到了以下输出:
1867 4663
1867
4663
1923
yes
10384150
no
15274293 15275591
15274293
15275591
17486938 17490453
我发现嵌套循环在第一次运行后似乎就不再执行了。我哪里出错了? (我知道我的代码写得比较长,但作为一个完全的初学者,我想尽量保持简单。) 谢谢你的帮助!
1 个回答
4
第二个 for
循环会读取整个 ValuesFile
文件。执行完这个循环后,文件指针会停在文件的最后面,这时候就没有更多的值可以读取了。
在开始第二个 for
循环之前,你应该把 ValuesFile
的文件指针重置,这样才能从头开始再次读取 ValuesFile
。