2013-06-05 19 views

risposta

8
import itertools 

# ... 

for each_f, each_g in itertools.izip(f, g): 
    # ... 
+0

'import itertools' potrebbe essere necessario. – shahkalpesh

+0

@shahkalpesh ovviamente. – kirelagin

+1

potrebbe non essere ovvio per OP, quindi il commento. – shahkalpesh

-1

È possibile utilizzare un gestore di contesto, cioè l'istruzione with a leggere due file nello stesso momento:

with open('file1', 'r') as a, open('file2', 'r') as b: 
    do_something_with_a_and_b 
+0

Penso che questo non dovrebbe essere downvoted come questo; questa è una semplice risposta al titolo della domanda, che poi non coincide con il vero problema. È il titolo che dovrebbe essere corretto su qualcosa come "troppi valori per decomprimere in loop" – progmatico

1

Senza usare itertools:

while True: 
    try: 
     f_line = next(f) 
     g_line = next(f) 
    except StopIteration: 
     break 

Questo rompe fuori dal giro, non appena il più corto dei due file è esaurito, come izip fa pure.

Ma in realtà, itertools è la soluzione superiore.

Problemi correlati