-
Notifications
You must be signed in to change notification settings - Fork 1
/
convert_json_to_mtx_r.py
44 lines (38 loc) · 1.21 KB
/
convert_json_to_mtx_r.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import argparse
import glob
from locale import getdefaultlocale
from os.path import join as path_join
from subprocess import Popen, PIPE
from app.utils.io import print_process
from multiprocessing import Pool
from functools import partial
CONSOLE_ENCODING = getdefaultlocale()[1]
def mtx_to_json(json_file, mtx_to_json_path):
if json_file.endswith(".fif.json"):
return
print(f"[-] Converting {json_file} to mtx")
process = Popen(
f"{mtx_to_json_path} {json_file}", stdout=PIPE, stderr=PIPE
)
print_process(process, CONSOLE_ENCODING)
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description="convert json files to mtx recursively"
)
parser.add_argument(
"-d",
"--dir_path",
help="directory path to convert",
required=True,
)
parser.add_argument(
"-m",
"--mtx_to_json_path",
help="MtxToJson path",
required=True
)
args = parser.parse_args()
json_files = glob.glob(path_join(args.dir_path, "**", "*.json"), recursive=True)
mtx_to_json_i = partial(mtx_to_json, mtx_to_json_path=args.mtx_to_json_path)
with Pool(processes=16) as pool:
pool.map(mtx_to_json_i, json_files)