2016-03-25 1 views
0

Я хочу использовать python для одновременного открытия двух файлов, прочитав одну строку из каждого из них, затем выполните некоторые операции. Затем прочитайте следующую строку из каждого из них и выполните некоторую операцию, затем следующую следующую строку ... Я хочу знать, как я могу это сделать. Кажется, что цикл for не может выполнить эту работу.Как использовать python для работы с двумя файлами одновременно

+2

Откуда вы знаете, что цикл for не работает? что ты уже испробовал? – Bahrom

+0

Я пробовал много раз –

+1

Опубликовать свою попытку в вопросе, и мы можем попытаться помочь вам исправить это. – Bahrom

ответ

4
file1 = open("some_file") 
file2 = open("other_file") 

for some_line,other_line in zip(file1,file2): 
    #do something silly 

file1.close() 
file2.close() 

отмечает, что itertools.izip может быть предпочтительным, если вы не хотите, чтобы сохранить весь файл в памяти ...

также отметить, что это завершится, когда конец любого файла достигнут ...

+0

благодарит брата, он хорошо работает –

0

Почему бы не прочитать каждый файл в списке, каждый элемент в списке содержит 1 строку.

Как только вы загрузите оба файла в свои списки, вы можете работать по строкам (индексировать по индексу) через свой список, выполняя любые сравнения/операции, которые вам нужны.

0

вы можете поместить внутри цикла, как, что:

for x in range(0, n): 
    read onde line 
    read the other line 

попробовать это

0

Вы можете попробовать этот код:

fin1 = open('file1') 
fin2 = open('file2') 

content1 = fin1.readlines() 
content2 = fin2.readlines() 

length = len(content1) 

for i in range(length): 
    line1, line2 = content1[i].rstrip('\n'),content2[i].rstrip('\n') 
    # do something 

fin1.close() 
fin2.close() 
Смежные вопросы