Mercurial > repos > saketkc > replace_delimiters
comparison replace_delimiter/replace_delimiter.py @ 0:101608e1f388 draft default tip
Uploaded
| author | saketkc |
|---|---|
| date | Tue, 07 Oct 2014 18:59:45 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:101608e1f388 |
|---|---|
| 1 #!/usr/bin/env python | |
| 2 #By, Guruprasad Ananda. | |
| 3 | |
| 4 import sys, re | |
| 5 | |
| 6 def stop_err(msg): | |
| 7 sys.stderr.write(msg) | |
| 8 sys.exit() | |
| 9 | |
| 10 def main(): | |
| 11 if len(sys.argv) != 5: | |
| 12 stop_err("usage: convert_characters infile from_char to_char outfile") | |
| 13 | |
| 14 try: | |
| 15 fin = open(sys.argv[1],'r') | |
| 16 except: | |
| 17 stop_err("Input file cannot be opened for reading.") | |
| 18 | |
| 19 from_char = sys.argv[2] | |
| 20 to_char = sys.argv[3] | |
| 21 | |
| 22 try: | |
| 23 fout = open(sys.argv[4],'w') | |
| 24 except: | |
| 25 stop_err("Output file cannot be opened for writing.") | |
| 26 | |
| 27 char_dict = { | |
| 28 'T': '\t', | |
| 29 's': '\s', | |
| 30 'Dt': '\.', | |
| 31 'C': ',', | |
| 32 'D': '-', | |
| 33 'U': '_', | |
| 34 'P': '\|', | |
| 35 'Co': ':', | |
| 36 'Sc': ';' | |
| 37 } | |
| 38 from_ch = char_dict[from_char] + '+' #making an RE to match 1 or more occurences. | |
| 39 to_char = char_dict[to_char] | |
| 40 skipped = 0 | |
| 41 | |
| 42 for line in fin: | |
| 43 line = line.strip() | |
| 44 try: | |
| 45 fout.write("%s\n" %(re.sub(from_ch, to_char, line))) | |
| 46 except: | |
| 47 skipped += 1 | |
| 48 | |
| 49 fout.close() | |
| 50 fin.close() | |
| 51 if skipped: | |
| 52 print "Skipped %d lines as invalid." %skipped | |
| 53 | |
| 54 if __name__ == "__main__": | |
| 55 main() |
