Добрый день. Имеется 2 txt файла, один как основной, который весит около 100мб, в нем строки вида:
111111;dflgkdkfg
222222;DFLKDFG
33333;dfgdfgdfgdfg
и второй, с таким же видом строк. Нужно найти строки, которые совпадают с строками первого файла. Проблема в том, что строки искать нужно только по совпадению до знака " ; ", если таковые есть, их нужно записать в отдельный файл.
Мой код:
with open('some_file_1.txt', 'r') as file1:
with open('some_file_2.txt', 'r') as file2:
same = set(file1).intersection(file2)
same.discard('\n')
with open('some_output_file.txt', 'w') as file_out:
for line in same:
file_out.write(line)
Но проблема в том, что он сверяет строку полностью, и если такая строка есть в 1 файле - записывает ее, а нужно, чтобы сверял до знака ; и если такая строка есть, то записывал ее полностью уже. То есть:
1 файл:
111111;dflgkdkfg
222222;DFLKDFG
33333;dfgdfgdfgdfg
2 файл:
555555;dflgkdkfg
222222;fgdfgdfgdfgdfgdfgdfg
4444444;dfgdfgdfgdfg
и вывести должно это:
222222;DFLKDFG
Можно конечно открывать второй файл, читать его построчно, разделять строку по разделителю и потом открывать первый файл и так же построчно пробегаться по нему и искать текст в каждой строке, но думаю это будет не рационально, и когда строк будет много, придется же открывать каждый раз первый файл и пробегаться пока не закончатся строки во втором файле, думаю на это много времени уйдет, не так ли?