#!/usr/bin/env python
"""Script to count the number of times each letter appears in a file"""
import sys
import string

def main(file_name):
    """Counts the number of time each letter appears in a file"""
    in_file_name = file_name + '.txt'
    out_file_name = file_name + '.count'
    try:
        in_file_hand = open(in_file_name, 'r')
    except IOError as read_open_io_error:
        print 'Failed to open {0} for reading: {1}'.format(
            in_file_name, read_open_io_error.strerror)
        return 1
    try:
        out_file_hand = open(out_file_name, 'w')
    except IOError as write_open_io_error:
        print 'Failed to open {0} for writing: {1}'.format(
            in_file_name, write_open_io_error.strerror)
        in_file_hand.close()
        return 1
    letter_count = {}
    for upper_char in string.ascii_uppercase:
        letter_count[upper_char] = 0
    for line in in_file_hand:
        for any_char in line:
            if any_char.isalpha():
                upper_char = any_char.upper()
                letter_count[upper_char] = letter_count[upper_char] + 1
    in_file_hand.close()
    for upper_char in string.ascii_uppercase:
        out_file_hand.write("{0}: {1:4d}\n".format(
            upper_char, letter_count[upper_char]))
    out_file_hand.close()
    return 0

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print 'usage: {0} filename'.format(sys.argv[0])
        sys.exit(1)
    else:
        sys.exit(main(sys.argv[1]))
