diff --git a/misc/move_files/move_files.py b/misc/move_files/move_files.py index 44cc3f4f7e61027b833a7774705577c59e756e72..10c9bd00163a14956af894af21dff2eb7617344c 100755 --- a/misc/move_files/move_files.py +++ b/misc/move_files/move_files.py @@ -62,15 +62,28 @@ def rename(changes, chunksize=10): continue cont = db.Container() - for _, (old, new) in chunk.iterrows(): - cont.append(db.File(path=old)) - - cont.retrieve() - - for fi, (_, (old, new)) in zip(cont, chunk.iterrows()): - assert fi.path == old - fi.path = new - cont.update() + cmap = {} + + for ii, (old, new) in chunk.iterrows(): + try: + fi = db.File(path=old) + fi.retrieve() + + if not fi.is_valid(): + continue + cont.append(fi) + cmap[ii] = len(cont)-1 + except Exception as e: + print(e) + + for ii, (old, new) in chunk.iterrows(): + if ii not in cmap: + continue + assert cont[cmap[ii]].path == old + cont[cmap[ii]].path = new + + if len(cont) > 0: + cont.update(unique=False) i += 1