Моя цель сравнить две большие строки данных (3000+ букв) для совпадений, выстроить их в ряд и отобразить совпадения графически.
Код, который я использую, работает нормально, однако у меня проблема с отображением данных. В текстовом редакторе данные отображаются так, как и должно быть, однако, когда я открываю файл в блокноте, ограничение длины строки строки портит способ отображения данных. Мне нужно найти способ заставить программу отображать 60 символов за раз, а затем опустить страницу вниз, чтобы отобразить следующие 60 символов, но со всеми 3 строками, расположенными в нужном месте.
Я ожидаю, что мне не хватает очень простой функции форматирования или слияния.
Iv пытался запустить цикл диапазона для обработки кода по 60 символов за раз, но я могу найти способ заставить его работать.
Iv думал о попытке объединить строки, но у меня все еще есть та же проблема.
очевидно, я мог бы просто повторить код из 60-символьного фрагмента с [0:59], но чтобы это работало, мне нужно было бы скопировать код 50 раз, и это выглядит грязно.
def sequence_compare(pro1, pro2):
len1 = len(pro1)
len2 = len(pro2)
mismatches = []
for pos in range (0,min(len1,len2)) :
if pro1[pos] != pro2[pos] :
mismatches.append ( ' ' )
else:
mismatches.append ( '|' )
results = open('comparison.txt','w')
results.write(pro1)
results.write('\n')
results.write("".join(mismatches))
results.write('\n')
results.write(pro2)
results.write('\n')
sequence_compare(pro1, pro2)
ожидается
129876543
|| ||
123456743 ..................
129876543
|| ||
123456743 ...................
фактический
1234566778991
1234455666321
||| ||||
|||| |||
6788999876553
1234542323222