Python 在两个文件之间每隔一行分割一行

Python 在两个文件之间每隔一行分割一行,python,bash,division,Python,Bash,Division,我目前正在尝试自动化一个过程,如果我们看到每月运行的虚拟机数量发生突然变化,它会提醒我。下面是数据的样子 January.txt February.txt Web Fleet Web Fleet 100 112 Proxy Fleet Proxy Fleet 25 22 Beta Fleet

我目前正在尝试自动化一个过程,如果我们看到每月运行的虚拟机数量发生突然变化,它会提醒我。下面是数据的样子

January.txt               February.txt

Web Fleet                 Web Fleet
100                       112
Proxy Fleet               Proxy Fleet
25                        22
Beta Fleet                Beta Fleet
12                        10
我基本上想打开两个不同的文件,让python在两个文件之间用数字分隔每一行。从那里,我可以说“如果代码-

输出-

0.8928571428571429
1.1363636363636365
1.2

可能更简单的方法是先读取两个文件的内容,
zip
将它们放在一起,然后一次迭代移动两行:

with open("jan.txt") as file1:
    with open("feb.txt") as file2:
        lines = zip(file1.readlines(), file2.readlines())
        for line1, line2 in lines[1::2]:
            val1 = float(line1.strip())
            val2 = float(line2.strip())
            print val1/val2
[1::2]
位表示从索引1开始,一次移动2个项目

不预先读取文件内容的替代实现:

with open("jan.txt") as file1:
    with open("feb.txt") as file2:
        while True:
            file1.readline()
            file2.readline()
            line1 = file1.readline()
            line2 = file2.readline()
            if line1 == "" or line2 == "":
                break

            val1 = float(line1.strip())
            val2 = float(line2.strip())
            print val1/val2

您的文件行是否总是匹配,或者您是否必须让您的代码使其匹配?如果它们已经匹配,我怀疑
zip
将在开箱即用的情况下完成您最想做的事情。它们总是匹配。Python脚本按设置的顺序一次执行一个查询,以确保。仅供参考,您的示例代码可以写成:
>粘贴一月.txt二月.txt | awk'NR%2==0{print$1/$2}'
awk'NR==FNR{a[NR]=$0;next}FNR%2==0{print a[FNR]/$1}'jan.txt二月.txt
如果他在使用python 2.7,他需要一个浮点除法,否则他会得到一个整数答案…@pekapa编辑它。现在它可以同时使用python 2和python 3。
with open("jan.txt") as file1:
    with open("feb.txt") as file2:
        lines = zip(file1.readlines(), file2.readlines())
        for line1, line2 in lines[1::2]:
            val1 = float(line1.strip())
            val2 = float(line2.strip())
            print val1/val2
with open("jan.txt") as file1:
    with open("feb.txt") as file2:
        while True:
            file1.readline()
            file2.readline()
            line1 = file1.readline()
            line2 = file2.readline()
            if line1 == "" or line2 == "":
                break

            val1 = float(line1.strip())
            val2 = float(line2.strip())
            print val1/val2