Newer
Older
EsoDatasetEditer / DumpTxtEditor.py
@planck planck on 29 Apr 2020 1 KB Dump用のtxt作成機能完成
from glob import glob
import os

class DumpTxtEditor:

    def __init__(self, args):
        self.args = args

    def edit_dump_txt(self):
        size_list = self.calc_size_list()
        with open(os.path.join(self.args.dump_dir, self.args.txt_name), mode='w') as f:
            while True:
                print("input : from (when input -9999, exit)")
                from_num = int(input())

                if from_num == -9999:
                    break

                print("input : to")
                to_num = int(input())
                if from_num < to_num:
                    for i in range((to_num - from_num + 1)):
                        if (i % self.args.choice_interval) == 0:
                            cur_file_name = self.check_file_name(from_num + i, size_list)
                            print('{} {:08}'.format(self.args.dump_dir_name.format(cur_file_name), from_num + i))
                            f.write('{} {:08}\n'.format(self.args.dump_dir_name.format(cur_file_name), from_num + i))


    def calc_size_list(self):
        subdir_names = glob(os.path.join(self.args.eso_imgs_dir, self.args.imgs_name.format('*')))
        size_list = []
        for subdir_name in subdir_names:
            size_list.append(len(glob(os.path.join(subdir_name, '*.png'))))
        return size_list

    def check_file_name(self, file_num, size_list):
        subdir_num = 0
        for i, size in enumerate(size_list):
            file_num -= size
            if file_num < 0:
                return subdir_num
            subdir_num += 1