У меня есть 2 файла в следующей форме:Сравнение 2 файлов построчно
file1:
work1
7 8 9 10 11
1 2 3 4 5
6 7 8 9 10
file2:
work2
2 3 4 5 5
2 4 7 8 9
work1
7 8 9 10 11
1 2 4 4 5
6 7 8 9 10
work3
1 7 8 9 10
Теперь я хочу, чтобы сравнить файл и везде, где говорят, заголовок (работу1) является equal..I хотите сравнить последующее разделов и распечатать строку, в которой обнаружена разница. Например.
work1 (file1)
7 8 9 10 11
1 2 3 4 5
6 7 8 9 10
work1 (file2)
7 8 9 10 11
1 2 4 4 5
6 7 8 9 10
Теперь я хочу, чтобы напечатать строку, в которой разница происходит, т.е. "1 2 4 4 5"
для этого я написал следующий код:
with open("file1",) as r, open("file2") as w:
for line in r:
if "work1" in line:
for line1 in w:
if "work1" in line1:
print "work1"
Однако отсюда Я смущен тем, как я могу прочитать оба файла параллельно. Может кто-то пожалуйста, помогите мне с этим ... как я не получаю после сравнения «work1» 's, как я должен читать файлы параллельно
читайте оба в памяти (каждый r.read() и w.read() в переменную), затем выполните сравнение. Параллель - это не правильное слово. – CppLearner
CppLearner Подход возможен только тогда, когда мои файлы не большие для больших файлов, подход невозможен – user1778824
Хорошая точка. Ну, если вы уверены, что заголовок, такой как 'work1', не повторяется в том же файле, вы можете просто открыть файл и прочитать, где встречается и заканчивается подстрока, и возникает следующий заголовок. Запишите их в обоих файлах и затем прочитайте. Я не знаю, как производительность сравнивается с этим http://stackoverflow.com/questions/3322419/iterate-across-lines-in-two-files-simultaneous-in-python, который считывает оба файла в один и тот же итератор. – CppLearner