Calcular IBAN en Python
Por diversos motivos necesitaba calcular el código IBAN para cientos de cuentas bancarias y todo lo que veía por internet solo te lo hacia para una.. así que decidí buscar el algoritmo y hacerlo en Python, ya que así mataba 2 pájaros de un tiro, programaba en Python y resolvía el problema.
El Programa funciona para calcular cuentas bancarias de España, para otro país basta cambiar la variable cod.
El programa espera un fichero que contenga en cada línea una cuenta corriente y devuelve un fichero con la cuenta corriente, el código IBAN, el IBAN electrónico y el de papel.
# Calculo IBAN España
# http://www.finanzasybanca.com/iberfinanzas/index.php/C/Codigo-Internacional-de-Cuenta-Bancaria-IBAN.htmlcod = '142800'
f = open("ncc.txt")
g = open("ncciban.txt","w")
for linea in f:
linea = linea.replace('\n', '')
if linea != "":
ncc = linea.replace(' ', '')
#n = str(int(ncc[:4])) + ncc[4:] + cod
#iban = 98 - (int(n) % 97)
#ibantxt = (str(iban))[:2]ibantxt = (str(98 - (int(str(int(ncc[:4])) + ncc[4:] + cod) % 97)))[:2]
if len(ibantxt) < 2 :
ibantxtpapel = 'IBAN ES0' + ibantxt
ibantxt = 'IBAN ES0' + ibantxt
else:
ibantxtpapel = 'IBAN ES' + ibantxt
ibantxt = 'IBAN ES' + ibantxt
ibantxtpapel = ibantxtpapel + ' ' + ncc[:4] + ' ' + ncc[4:8] + ' ' + ncc[8:12] + ' ' + ncc[12:16] + ' ' + ncc[16:20]
ibantxt = ibantxt + ncc
#Comprobamos IBAN
print('IBAN papel = ' + ibantxtpapel)
print('IBAN electronico = ' + ibantxt)
print('NCC = ' + linea)g.write(linea + ',' + ibantxt[:9] + ',' + ibantxtpapel + ',' + ibantxt + '\n')
else :
g.write('\n')
f.close()
g.close()