Выходной файл будет содержать только те строки, которые вы в него записываете.
Если Thanos находится в строке, вы изменяете строку, открываете выходной файл и добавляете измененную строку к нему.
Но если нет, вы ничего не делаете, поэтому ничего не пишется.
Вы можете исправить это так:
for num, line in enumerate(myFile, 1):
#print ('Found at line:', num)
s = list(line)
if lookup_keyword in line:
s[1] = 'AA'
s[5] = 'KK'
# join the list to a original string form
finaljoin = "".join(s)
#print (finaljoin)
with open(new_filename, 'a+') as f:
f.write(finaljoin)
Таким образом, вы всегда создаете новую строку и добавляете ее в новый файл, независимо от того, изменили вы его или нет.
В качестве альтернативы:
for num, line in enumerate(myFile, 1):
if lookup_keyword in line:
#print ('Found at line:', num)
s = list(line)
s[1] = 'AA'
s[5] = 'KK'
# join the list to a original string form
finaljoin = "".join(s)
else:
finaljoin = line
with open(new_filename, 'a+') as f:
f.write(finaljoin)
Таким образом, вы не тратите впустую усилия на разделение и воссоединение строки, когда не хотите ее изменять, и это не намного сложнее.