I would go with @Randyr answer but I would change the read and convert method as follows for two reasons; 1) the output method requires storing all your answers when they wont be processed again and 2) good python apologises rather then asks for permission. def read_and_convert_file(args): """Read the given input file and convert each hexadecimal value to decimal value and output to file """ line_num = 0 out_file = args['input_file'] + ".2decimal" with open(out_file, 'a+') as output: with open(args['input_file']) as input_file: for line in input_file: line_num += 1 try: converted = str(int(line, 0)) output.write(converted + "\n") print('Converted: {}'.format(converted)) except ValueError: print('Invalid text on line',line_num)