python - Python 中的嵌套 for 循环涉及 2 个文件

标签 python for-loop

<分区>

我有 2 个文件:一个 (ranges.txt) 的行包含 2 个制表符分隔的整数,第二个 (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()

对于具有 2 个范围和 2 个整数的测试文件,我得到以下输出:

1867    4663

1867
4663
1923
yes
10384150
no
15274293    15275591

15274293
15275591
17486938    17490453

嵌套循环在第一次迭代后似乎没有运行。我做错了什么? (我知道我的代码太长了,但作为一个绝对的初学者,我正在努力让事情变得简单。) 感谢您的帮助!

最佳答案

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

在开始第二个 for 循环以再次从头开始读取 ValuesFile 之前,您应该重置 ValuesFile 文件指针。

关于python - Python 中的嵌套 for 循环涉及 2 个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7247031/

相关文章:

python - 当 "[] == False"成功时,为什么 "if not []"评估为 False?

未呈现的 Python 页面

python - 已编译 Python 与 IronPython 的启动时间

algorithm - 如何计算for循环执行过程中发生的操作次数?

python - 脚本无法发出 POST 请求

python - 使用 SQLAlchemy 将表元数据从 sqlserver 传输到 postgresql

Python:是否有类似 C 的 for 循环可用?

c - 在C中求5个连续整数的乘积

r - 使用 for 循环进行控制和处理匹配比较

ios - NSMutablearray 从最后一个元素而不是第一个开始打印