view tools/filters/convert_characters.py @ 1:cdcb0ce84a1b

Uploaded
author xuebing
date Fri, 09 Mar 2012 19:45:15 -0500
parents 9071e359b9a3
children
line wrap: on
line source

#!/usr/bin/env python
#By, Guruprasad Ananda.

from galaxy import eggs
import sys, re

def stop_err(msg):
    sys.stderr.write(msg)
    sys.exit()
    
def main():
    if len(sys.argv) != 4:
        stop_err("usage: convert_characters infile from_char outfile")

    try:
        fin = open(sys.argv[1],'r')
    except:
        stop_err("Input file cannot be opened for reading.")
    
    from_char = sys.argv[2]
    
    try:
        fout = open(sys.argv[3],'w')
    except:
        stop_err("Output file cannot be opened for writing.")
    
    char_dict = {'T':'\t','s':'\s','Dt':'\.','C':',','D':'-','U':'_','P':'\|','Co':':'}
    from_ch = char_dict[from_char] + '+'    #making an RE to match 1 or more occurences.
    skipped = 0
    
    for line in fin:
        line = line.strip()
        try:
            fout.write("%s\n" %(re.sub(from_ch,'\t',line)))     
        except:
            skipped += 1
            
    if skipped:
        print "Skipped %d lines as invalid." %skipped
    
if __name__ == "__main__": 
    main()