import os
import sys
import tarfile
ERROR = False
TABLE = ''.join(map(chr, range(256)))
DELETECHARS = ''.join(c for c in TABLE if len(repr(c)) != 6)
def main():
try:
arguments = sys.argv[1:]
assert arguments
for path in arguments:
assert os.path.isdir(path)
for function in (untar, bias, convert):
for path in arguments:
engine(path, function)
except:
sys.stdout.write(
'Usage: %s <directory>' % os.path.basename(sys.argv[0]))
def engine(path, function):
global ERROR
for root, dirs, files in os.walk(path):
for name in files:
path = os.path.join(root, name)
try:
function(path)
except:
sys.stderr.write('%sError: %s' % (ERROR and '\n' or '', path))
ERROR = True
def untar(path):
try: tarfile.open(path).extractall(os.path.dirname(path))
except: pass
def bias(path):
root, ext = os.path.splitext(path)
if not ext[1:]:
os.rename(path, root + '.txt')
def convert(path):
if not file(path, 'rb').read(2 ** 20).translate(TABLE, DELETECHARS):
data = file(path, 'r').read()
file(path, 'w').write(data)
if __name__ == '__main__':
main()