import h5py baddemo=[] # with h5py.File("/home/rookie/桌面/diffusion_policy/data/dataset/close_laptop_lid/close_laptop_lid_merged_data.hdf5") as file: # # # count total steps # demos = file['data'] # 打开 HDF5 文件并读取数据 # episode_ends = list() # prev_end = 0 # for i in range(179): # abort_variation = False # demo = demos[f'demo_{i}'] # actions = demo['action'] # # if(demo['action'].shape[0] > 450): # baddemo.append(i) print(baddemo) print(len(baddemo)) import os def clean_and_rename_files(folder_path, baddemo): """ 删除指定文件并重新排列剩余文件。 Args: folder_path (str): 包含文件的目标文件夹路径。 baddemo (list): 保存需要删除的文件编号的列表。 """ # 列出文件夹中所有的 .hdf5 文件 files = [f for f in os.listdir(folder_path) if f.endswith('.hdf5')] # 按文件编号排序 files.sort(key=lambda x: int(x.split('_')[1].split('.')[0])) # 遍历文件,删除 baddemo 中的文件 for file in files: file_number = int(file.split('_')[1].split('.')[0]) # 提取文件编号 if file_number in baddemo: os.remove(os.path.join(folder_path, file)) # 删除文件 print(f"Deleted: {file}") # 列出剩余文件并重新排序 remaining_files = [f for f in os.listdir(folder_path) if f.endswith('.hdf5')] remaining_files.sort(key=lambda x: int(x.split('_')[1].split('.')[0])) # 按顺序重新命名文件 for new_index, file in enumerate(remaining_files): new_name = f"episode_{new_index}.hdf5" old_path = os.path.join(folder_path, file) new_path = os.path.join(folder_path, new_name) os.rename(old_path, new_path) print(f"Renamed: {file} -> {new_name}") print("Operation completed. Remaining files:") print([f for f in os.listdir(folder_path) if f.endswith('.hdf5')]) folder_path = "/home/rookie/桌面/diffusion_policy/RLBench_ACT/Datasets/wipe_desk/variation0" # 替换为你的文件夹路径 # clean_and_rename_files(folder_path, baddemo)