diff options
| author | Michal Idziorek <m.i@gmx.at> | 2015-05-17 19:43:59 +0200 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2015-05-17 19:43:59 +0200 |
| commit | d98828d08eb1f6c1394f38a1df69c73fef0cfefa (patch) | |
| tree | 31df37430733c906b235b88c2cfa14d835af4bec /xxx/font/binarize.py | |
| parent | 29ea3208b004f15dafa48ae29a75ba7f0c093a74 (diff) | |
working on vt52 and some cleanup
Diffstat (limited to 'xxx/font/binarize.py')
| -rw-r--r-- | xxx/font/binarize.py | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/xxx/font/binarize.py b/xxx/font/binarize.py new file mode 100644 index 0000000..1abb9d6 --- /dev/null +++ b/xxx/font/binarize.py @@ -0,0 +1,87 @@ +import sys + +def binarize(file_in, file_out): + + """ Create a binary file from an ASCII file. Everything + but '0' and '1' (alternatively '_' and 'X') is ignored + from the input file. """ + + print ("binarizing " + file_in + " to "+ file_out + ".") + + try: + + f=open(file_in,'r') + + try: + + o=open(file_out,'wb') + + try: + + while True: + + b=readnext(f) + if b==-1: + break + + o.write(bytes([b])) + + except IOError: + print("IOError happened during processing."); + print("I am closing the input and ouput files and aborting."); + print("Warning: The output file is very likely incomplete."); + + o.close() + + except IOError: + print("IOError opening output file: " + file_out); + + f.close() + + except IOError: + print("IOError opening input file: " + file_in); + + +def readnext(f): + + """ Read next 'byte' from the given ASCII file (BufferedWriter) + everything but '_','X','0','1' is ignored. + Returns the byte as integer or -1 on EOF """ + + l=0 + b="" + + while l<8: + + c=f.read(1) + + if not c: + return -1 + + if c=="0" or c=='_': + l+=1 + b+="0" + + if c=="1" or c=='X': + l+=1 + b+="1" + + return int(b,2) + +def usage(): + + """ Prints usage information to sdtout """ + + print ("python3.x binarize.py [file_in] [file_out]") + + + +""" direct use """ + +if __name__ == "__main__": + + if(len(sys.argv)==3): + binarize(sys.argv[1],sys.argv[2]) + else: + usage() + |
