Spaces:
Running
Running
import os | |
def check_exists_files(files,dirs,exit_on_error=True): | |
if files is not None: | |
if isinstance(files, str): | |
files = [files] | |
for file in files: | |
if not os.path.isfile(file): | |
print(f"File {file} not found") | |
if exit_on_error: | |
exit(1) | |
else: | |
return 1 | |
if dirs is not None: | |
if isinstance(dirs, str): | |
dirs = [dirs] | |
for dir in dirs: | |
if not os.path.isdir(dir): | |
print(f"Dir {dir} not found") | |
if exit_on_error: | |
exit(1) | |
else: | |
return 1 | |
return 0 | |
image_extensions =[".jpg"] | |
def add_name_suffix(file_name,suffix,replace_suffix=False): | |
if not suffix.startswith("_"):#force add | |
suffix="_"+suffix | |
name,ext = os.path.splitext(file_name) | |
if replace_suffix: | |
index = name.rfind("_") | |
if index!=-1: | |
return f"{name[0:index]}{suffix}{ext}" | |
return f"{name}{suffix}{ext}" | |
def replace_extension(file_name,new_extension,suffix=None,replace_suffix=False): | |
if not new_extension.startswith("."): | |
new_extension="."+new_extension | |
name,ext = os.path.splitext(file_name) | |
new_file = f"{name}{new_extension}" | |
if suffix: | |
return add_name_suffix(name+new_extension,suffix,replace_suffix) | |
return new_file | |
def list_digit_images(input_dir,sort=True): | |
digit_images = [] | |
global image_extensions | |
files = os.listdir(input_dir) | |
for file in files: | |
if file.endswith(".jpg"):#TODO check image | |
base,ext = os.path.splitext(file) | |
if not base.isdigit(): | |
continue | |
digit_images.append(file) | |
if sort: | |
digit_images.sort() | |
return digit_images | |
def list_suffix_images(input_dir,suffix,is_digit=True,sort=True): | |
digit_images = [] | |
global image_extensions | |
files = os.listdir(input_dir) | |
for file in files: | |
if file.endswith(".jpg"):#TODO check image | |
base,ext = os.path.splitext(file) | |
if base.endswith(suffix): | |
if is_digit: | |
if not base.replace(suffix,"").isdigit(): | |
continue | |
digit_images.append(file) | |
if sort: | |
digit_images.sort() | |
return digit_images | |
import time | |
class ProgressTracker: | |
""" | |
ๅฆ็ใฎ้ฒๆ็ถๆณใ่ฟฝ่ทกใใ็ต้ๆ้ใจๆฎใๆ้ใ่กจ็คบใใใฏใฉในใ | |
""" | |
def __init__(self,key, total_target): | |
""" | |
ใณใณในใใฉใฏใฟ | |
Args: | |
total_target (int): ๅฆ็ๅฏพ่ฑกใฎ็ทๆฐ | |
""" | |
self.key = key | |
self.total_target = total_target | |
self.complete_target = 0 | |
self.start_time = time.time() | |
def update(self): | |
""" | |
้ฒๆใ1ใค้ฒใใใ | |
็ต้ๆ้ใจๆฎใๆ้ใ่กจ็คบใใใ | |
""" | |
self.complete_target += 1 | |
current_time = time.time() | |
consumed_time = current_time - self.start_time | |
remain_time = (consumed_time / self.complete_target) * (self.total_target - self.complete_target) if self.complete_target > 0 else 0 | |
print(f"stepped {self.key} {self.total_target} of {self.complete_target}, consumed {(consumed_time / 60):.1f} min, remain {(remain_time / 60):.1f} min") | |