Recuerda que cuando se lee un archivo, se recorre linea por linea, hasta llegar a la ultima que esta vacía!... Entonces si pasas un objeto vacío, y haces len(objeto) - 1, entonces ahí cae el error, porque estarías en -1 de un string vacío, que si estuvieses un string -1 seria el ultimo elemento. Pero en algo vacío no hay elementos por eso tienes el error.
Debes verificar primero si la linea esta vacía.
Código Python:
Ver originalpsu=open("psu.txt","r")
resul=open("resultados.txt","w")
def revisar(x, y):
n = 0
for i in range(len(x) -1):
if x[i] == y[i]:
n += 1
return n
maxResultado=0
minResultado=0
p1l=psu.readline()[20:]
while True:
linea=psu.readline()[20:]
if not linea:
break
print revisar(p1l,linea)
Nunca verifiques if a == "", mejor usa if not a, para todo lo que sea false, vacío o 0.
Saludos!
PD: Antes de empezar a programar debes leerte un libro o tutorial, no comenzar a darte golpes sin leer lo suficiente.