使用生成器以时间优先级读取两个文件

Fan*_*hin 2 python time generator

我刚刚阅读了生成器,并想知道如何使用生成器:
假设有两个文件,每个文件都有一个时间列.每个文件按升序时间排序,我希望使用时间优先级抓取这些文件中的行.而不是写一个简单的表达式(见下文),我想知道创建一个生成器next()是否是一个更好/适当的方式来读取这两个文件的时间优先级.

for line1 in file1:    
    do_something
    try:
        if time1<time2:
            do_something    
            continue
        else:
            do_something  
    except:
        pass  
    for line2 in file2:
        do_something  
        if time2>time1:
            break  
Run Code Online (Sandbox Code Playgroud)

iru*_*var 10

使用heapq.merge

def generate_timeline(file):
    for line in file:
         time1 = extract_time_from_line(line)
         yield time1, line


for (time1, line) in heapq.merge(generate_timeline(file1), generate_timeline(file2)):
    process(line)
Run Code Online (Sandbox Code Playgroud)