在Python中嵌套for循环,涉及2个文件

在Python中嵌套for循环,涉及2个文件,python,for-loop,Python,For Loop,我有两个文件:一个(ranges.txt)包含两个制表符分隔的整数,另一个(values.txt)包含制表符分隔的值,第一个是整数。ranges.txt中的整数代表一个范围的起点和终点,对于每个范围,我想问values.txt中有多少整数属于这个范围。作为起点,我编写了以下代码: RangesFile = open('ranges.txt', 'r') ValuesFile = open('values.txt', 'r') for Line in RangesFile: RangesF

我有两个文件:一个(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()
嵌套循环似乎不会在第一次迭代后运行。我做错了什么? (我知道我的代码太长了,但作为一个绝对的初学者,我会尽量让事情简单。)
谢谢你的帮助

for的第二个
循环读取整个
值文件
。执行后,文件指针位于文件的末尾,没有更多的值可从中读取


在启动第二个
for
循环之前,您应该重置
值文件
文件指针,以便重新开始读取
值文件。

第二个
for
循环读取整个
值文件
。执行后,文件指针位于文件的末尾,没有更多的值可从中读取


在启动第二个
for
循环之前,您应该重置
值文件
文件指针,以便重新开始读取
值文件。

修复缩进,此代码段在语法上无效。同意Cat Plus-,无法判断您的缩进是否是此处的格式错误或问题的部分根源…抱歉,它现在看起来像我的代码-我还没有完全弄清楚此处的格式。修复您的缩进,此代码段在语法上无效。同意Cat Plus-,无法判断缩进是此处的格式错误还是问题的部分根源…抱歉,它现在看起来像我的代码-我还没有完全弄清楚此处的格式。明白了。谢谢是否每次循环时都必须重新打开ValuesFile,或者是否有更有效的方法来执行此操作?有更有效的方法,例如调用
ValuesFile.seek(0)
。有关更多详细信息,请参阅。最好只读取每个文件一次,并使用内存中的数据结构来执行此工作。我敢打赌
values文件
可能会变得非常大。但是,将
RangesFile
读入元组列表并只遍历一次值将是一个巨大的改进。不管怎样,让初学者从头开始…明白了。谢谢是否每次循环时都必须重新打开ValuesFile,或者是否有更有效的方法来执行此操作?有更有效的方法,例如调用
ValuesFile.seek(0)
。有关更多详细信息,请参阅。最好只读取每个文件一次,并使用内存中的数据结构来执行此工作。我敢打赌
values文件
可能会变得非常大。但是,将
RangesFile
读入元组列表并只遍历一次值将是一个巨大的改进。不管怎样,让初学者从头开始。。。
1867    4663

1867
4663
1923
yes
10384150
no
15274293    15275591

15274293
15275591
17486938    17490453