12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import os
- import argparse
- import glob
- def main():
- parser = argparse.ArgumentParser(description="Extract specific samples indices")
- parser.add_argument('--folder', type=str, help='folder with all rawls files', required=True)
- parser.add_argument('--index', type=str, help='current rawls image index', required=True)
- parser.add_argument('--nsamples', type=str, help='expected nsamples for image', required=True)
- parser.add_argument('--output', type=str, help='folder with all png files', required=True)
- args = parser.parse_args()
- p_folder = args.folder
- p_output = args.output
- p_index = args.index
- p_samples = args.nsamples
- expected_index = str(p_index)
- while len(expected_index) < 6:
- expected_index = "0" + expected_index
- output_index = ""
- while len(output_index) < 6:
- output_index = "0" + output_index
- images_path = glob.glob(f"{p_folder}/**/**/*{expected_index}.png")
- for img in sorted(images_path):
- # replace expected Samples value
- img_data = img.split('/')[-1].split('-')
- img_data[-2] = "S" + p_samples
- img_data[-1] = output_index + ".png"
- output_path = '-'.join(img_data)
- output_path = os.path.join(p_output, img.split('/')[-2], output_path)
- output_folder, _ = os.path.split(output_path)
- if not os.path.exists(output_folder):
- os.makedirs(output_folder)
-
- if not os.path.exists(output_path):
- os.system(f'cp {img} {output_path}')
- else:
- print(f'{output_path} already exists')
-
- if __name__ == "__main__":
- main()
|