Jan-22-2024, 12:05 PM
Sorry to be back so soon.... Any ideas why my code causes Differ to crash? (NB The 3,7 is just an arbitrary number for testing a range). The "for x in R1" added just for a test works fine.
import difflib import itertools difference = difflib.Differ() file1 = "gonk1.txt" file2 = "gonk2.txt" result_file = "resultfile.txt" cnt1=0 with open(result_file, "w") as f3, open(file1, "r") as f1, open(file2, "r") as f2: r1 = itertools.islice(f1, 3,7) r2 = itertools.islice(f2, 3,7) for x in r1: print(x) for x in difference.compare(r1, r2): print(x)
Error: File "c:\Users\gonks\Desktop\python_work\compare_v4.py", line 18, in <module>
for x in difference.compare(r1, r2):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python312\Lib\difflib.py", line 859, in compare
cruncher = SequenceMatcher(self.linejunk, a, b)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python312\Lib\difflib.py", line 182, in __init__
self.set_seqs(a, b)
File "C:\Program Files\Python312\Lib\difflib.py", line 194, in set_seqs
self.set_seq2(b)
File "C:\Program Files\Python312\Lib\difflib.py", line 248, in set_seq2
self.__chain_b()
File "C:\Program Files\Python312\Lib\difflib.py", line 296, in __chain_b
n = len(b)
^^^^^^
TypeError: object of type 'itertools.islice' has no len()