#!/usr/bin/env python# -*- coding: utf-8 -*-import string,sysdef pot(base,exponente): if exponente == 0: return 1; else: return (base*pot(base,exponente-1));def conv_base_10(num,base): largo = len(num) suma = 0 for i in range(0,largo): dig_char = num[i] dig = int(dig_char) numero = dig * pot(base,largo-(i+1)) suma += numero return sumadef conv_otra_base(numero,base): lista_num = [] lista = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V'] largo = len(lista) while numero > 0: dig = numero % base for j in range(0,largo): if dig == j: lista_num.append(str(lista[j])) else: pass numero /= base lista_nueva = lista_num[::-1] num_convert = ''.join([str(c) for c in lista_nueva]) return num_convertdef verifica_digito(digito): lista = ['0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V'] largo_lista = len(lista) for i in range(0,largo_lista): if digito == lista[i]: break else: pass return iif len(sys.argv) == 0: print "No hay archivo para leer"file = open(sys.argv[1],'r')datos = file.read()lista_temp = string.split(datos,'\n')list_anid = map(lambda e: string.split(e, ' '),lista_temp)list_anid.pop() #Para eliminar el espacio en blanco que queda al finalnumero = []base1 = []base2 = []for n,b1,b2 in list_anid: numero.append(n) base1.append(b1) base2.append(b2)for i in range(0,len(numero)): str_num = str(numero[i]) num = list(str_num.upper()) largo_num = len(num) lista_num = [] for c in range(0,largo_num): dig = num[c] dig_verifica = verifica_digito(dig) dig_str = str(dig_verifica) lista_num.append(dig_str) for j in range(0,len(base1)): b = int(base1[j]) for k in range(0,len(base2)): b_conv = int(base2[k]) if b_conv == 10: print conv_base_10(lista_num,b) elif b_conv != 10 and b_conv >= 2 and b_conv <=32: numero = conv_base_10(lista_num,b) print conv_otra_base(numero,b_conv) else: print "No es posible hacer la conversión"