#!/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 i#if (len(sys.argv) > 1):# print "Abriendo "+sys.argv[1]# n = raw_input()# b = input()# b_conv = input()#else:# print "indica el nombre del archivo"#n = raw_input("Ingresa el número a convertir ")#b = input("Ingresa la base del número original ")#b_conv = input("Ingresa la base del número al cual desea convertir ")if len(sys.argv) == 0: print "No hay archivo para leer"file = open(sys.argv[1],'r')lista_palabra = []for linea in file.readlines(): if linea != '\n': for palabra in linea.split(' '): lista_palabra.append(palabra) largo_lista_palabra = len(lista_palabra) for i in range(0,largo_lista_palabra): n = lista_palabra[i] b_str = lista_palabra[i+1] b_conv_str = lista_palabra[i+2] str_num = str(n) num = list(str_num) largo_num = len(num) lista_num = [] for i in range(0,largo_num): dig = num[i] dig_verifica = verifica_digito(dig) dig_str = str(dig_verifica) lista_num.append(dig_str) b = int(b_str) b_conv = int(b_conv_str) 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"