在Python中嵌套for循环,涉及2个文件
我有两个文件:一个(ranges.txt)包含两个制表符分隔的整数,另一个(values.txt)包含制表符分隔的值,第一个是整数。ranges.txt中的整数代表一个范围的起点和终点,对于每个范围,我想问values.txt中有多少整数属于这个范围。作为起点,我编写了以下代码:在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
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