#!/usr/bin/env python3 import os import sys import re def main(): args = sys.argv if (len(args) != 3): print("Usage: ./check-ctrlcode.py ") sys.exit(1) dirpath = args[1] ext = args[2] fullpath = os.path.abspath(dirpath) if (os.path.isdir(fullpath) is not True): print("Directory not found.") sys.exit(1) check_dir(fullpath, ext) def check_dir(path, ext): for f in os.listdir(path): if(f[0] == "."): continue fullpath = os.path.join(path, f) if(os.path.isdir(fullpath)): check_dir(fullpath, ext) continue exts = os.path.splitext(f) if(exts[1] != ext): continue check_ctrlcode(fullpath) def check_ctrlcode(filepath): line = 0 with open(filepath, encoding='utf-8') as f: while True: str = f.readline() if(str == ""): break line = line + 1 # check 0x00-0x1f except 0x09(HT), 0x0a(LF), 0x0d(CR) pattern = re.compile('[\u0000-\u0008\u000b\u000c\u000e-\u001f]') m = pattern.search(str) if(m == None): continue pos = m.end() ctrl = m.group().encode("utf-8") print("{0} : {4}\n".format(filepath, line, pos, ctrl, str.replace('\n',''))) main()