It should be noted (for anyone stumbling upon this, like I just did) that there is a robust python library specifically designed to handle these tasks called Biopython. In a few lines of code, you can quickly access answers for all of the above questions. Here are some very basic examples, mostly adapted from the link. There are boiler-plate GC% graphs and sequence length graphs in the tutorial also.
In [1]: from Bio import SeqIO
In [2]: allSeqs = [seq_record for seq_record in SeqIO.parse( /home/kevin/stack/ls_orchid.fasta , """fasta""")]
In [3]: allSeqs[0]
Out[3]: SeqRecord(seq=Seq( CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGG...CGC , SingleLetterAlphabet()), id= gi|2765658|emb|Z78533.1|CIZ78533 , name= gi|2765658|emb|Z78533.1|CIZ78533 , description= gi|2765658|emb|Z78533.1|CIZ78533 C.irapeanum 5.8S rRNA gene and ITS1 and ITS2 DNA , dbxrefs=[])
In [4]: len(allSeqs) #number of unique sequences in the file
Out[4]: 94
In [5]: len(allSeqs[0].seq) # call len() on each SeqRecord.seq object
Out[5]: 740
In [6]: A_count = allSeqs[0].seq.count( A )
C_count = allSeqs[0].seq.count( C )
G_count = allSeqs[0].seq.count( G )
T_count = allSeqs[0].seq.count( T )
print A_count # number of A s
144
In [7]: allSeqs[0].seq.count("AUG") # or count how many start codons
Out[7]: 0
In [8]: allSeqs[0].seq.translate() # translate DNA -> Amino Acid
Out[8]: Seq( RNKVSVGEPAEGSLMRPWNKRSSESGGPVYSAHRGHCSRGDPDLLLGRLGSVHG...*VY , HasStopCodon(ExtendedIUPACProtein(), * ))