Skip to content

Instantly share code, notes, and snippets.

@Hiroshiba
Last active February 17, 2018 18:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Hiroshiba/60985d79d32815b1bc4c2ea6ba94c98b to your computer and use it in GitHub Desktop.
Save Hiroshiba/60985d79d32815b1bc4c2ea6ba94c98b to your computer and use it in GitHub Desktop.
numpy file validation
import argparse
import glob
import multiprocessing
import numpy
import tqdm
parser = argparse.ArgumentParser()
parser.add_argument('glob')
parser.add_argument('--processes', type=int)
args = parser.parse_args()
def try_load(p):
try:
numpy.load(p, mmap_mode='r')
except:
return p
if __name__ == '__main__':
pool = multiprocessing.Pool(processes=args.processes)
paths_input = list(glob.glob(args.glob))
paths_invalid = list(tqdm.tqdm(pool.imap(try_load, paths_input), total=len(paths_input)))
for path in paths_invalid:
if path is None:
continue
print(path)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment