import csv import errno import io import json import os import re import traceback from functools import partial from glob import glob from multiprocessing.pool import Pool def translate_dir(dir_in, tsv_out_dir, json_out_dir): # we only want to key files that are mission ids files = [f for f in glob(os.path.join(dir_in, "**/*.tsv"), recursive=True) if re.search(r'/[0-9]{9}\.tsv$', f)] if len(files) == 0: raise FileNotFoundError("No valid files found in directory: " + dir_in) ptrans = partial(translate_file, tsv_out_dir=tsv_out_dir, json_out_dir=json_out_dir) with Pool() as p: p.map(ptrans, files) def translate_file(file_in, tsv_out_dir, json_out_dir): try: if not file_in.endswith(".tsv"): raise ValueError("Invalid File Type for {}".format(file_in)) # we need to get the event folder # ie, Utage/>>>main01<<