Write a Python program called morse.py that will encrypt/decrypt text to/from Morse code. The program should expect a single positional argument which is either the name of a file to read for the input or the character - to indicate reading from STDIN. The program should also take a -c|--coding option to indicate use of the itu or standard morse tables, -o|--outfile for writing the output (default STDOUT), and a -d|--decode flag to indicate that the action is to decode the input (the default is to encode it).
$ ./morse.py
usage: morse.py [-h] [-c str] [-o str] [-d] [-D] FILE
morse.py: error: the following arguments are required: FILE
$ ./morse.py -h
usage: morse.py [-h] [-c str] [-o str] [-d] [-D] FILE
Encode and decode text/Morse
positional arguments:
FILE Input file or "-" for stdin
optional arguments:
-h, --help show this help message and exit
-c str, --coding str Coding version (default: itu)
-o str, --outfile str
Output file (default: None)
-d, --decode Decode message from Morse to text (default: False)
-D, --debug Debug (default: False)
$ ./morse.py ../inputs/fox.txt
- .... . --.- ..- .. -.-. -.- -... .-. --- .-- -. ..-. --- -..- .--- ..- -- .--. ... --- ...- . .-. - .... . .-.. .- --.. -.-- -.. --- --. .-.-.-
[cholla@~/work/python/playful_python/morse]$ ./morse.py ../inputs/fox.txt | ./morse.py -d -
THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.