def rename_slide(old, new, root=None, relink=True, verbose=False): THUMB_NAME = "-thumb.jpg" FULL_NAME = "-full.jpg" if root is None: root = '.' # current directory if not os.path.exists(old): raise IOError("%s does not exist" % old) if not is_slide(old): raise TypeError("%s is not a valid slide" % old) old_slide_name = os.path.basename(old) new_slide_name = os.path.basename(new) inner_file, slide_type = parse_slide(old) #relink first so we don't have to worry about adjusting file paths if relink: renamer = mv_refs(old_slide_name, new_slide_name) parse_folder(root, actions=[renamer], verbose=verbose) #rename inner file inner_pieces = os.path.splitext(inner_file) new_inner_file = os.path.join(old,new_slide_name+inner_pieces[1]) safe_rename(inner_file, new_inner_file) #rename -thumb.jpg if it exists old_thumb = os.path.join(old,old_slide_name+THUMB_NAME) new_thumb = os.path.join(old,new_slide_name+THUMB_NAME) if os.path.exists(old_thumb): safe_rename(old_thumb,new_thumb) #rename -full.jpg if it exists old_full = os.path.join(old,old_slide_name+FULL_NAME) new_full = os.path.join(old,new_slide_name+FULL_NAME) if os.path.exists(old_full): safe_rename(old_full,new_full) #rename outer parent folder safe_rename(old, new)
def prefix_refs(prefix, slidelist, root): for slide in slidelist: print("Changing all references to slide %s" % slide) sys.stdout.flush() parse_folder(rmv_refsctions=[mv_refs(slide, prefix + slide)], cutoff=1)