util.py 3.1 KB
Newer Older
HypoX64's avatar
preview  
HypoX64 已提交
1
import os
H
hypox64 已提交
2
import shutil
H
hypox64 已提交
3

HypoX64's avatar
preview  
HypoX64 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
def Traversal(filedir):
    file_list=[]
    for root,dirs,files in os.walk(filedir): 
        for file in files:
            file_list.append(os.path.join(root,file)) 
        for dir in dirs:
            Traversal(dir)
    return file_list

def is_img(path):
    ext = os.path.splitext(path)[1]
    ext = ext.lower()
    if ext in ['.jpg','.png','.jpeg','.bmp']:
        return True
    else:
        return False

def is_video(path):
    ext = os.path.splitext(path)[1]
    ext = ext.lower()
H
hypox64 已提交
24
    if ext in ['.mp4','.flv','.avi','.mov','.mkv','.wmv','.rmvb','.mts']:
HypoX64's avatar
preview  
HypoX64 已提交
25 26 27
        return True
    else:
        return False
H
hypox64 已提交
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

def is_imgs(paths):
    tmp = []
    for path in paths:
        if is_img(path):
            tmp.append(path)
    return tmp

def is_videos(paths):
    tmp = []
    for path in paths:
        if is_video(path):
            tmp.append(path)
    return tmp  

H
hypox64 已提交
43 44 45 46 47 48 49
def is_dirs(paths):
    tmp = []
    for path in paths:
        if os.path.isdir(path):
            tmp.append(path)
    return tmp  

50
def  writelog(path,log,isprint=False):
HypoX64's avatar
preview  
HypoX64 已提交
51 52
    f = open(path,'a+')
    f.write(log+'\n')
H
hypox64 已提交
53
    f.close()
54 55
    if isprint:
        print(log)
HypoX64's avatar
preview  
HypoX64 已提交
56

H
hypox64 已提交
57 58 59 60 61 62 63
def makedirs(path):
    if os.path.isdir(path):
        print(path,'existed')
    else:
        os.makedirs(path)
        print('makedir:',path)

64 65 66
def clean_tempfiles(opt,tmp_init=True):
    tmpdir = opt.temp_dir
    if os.path.isdir(tmpdir): 
67
        print('Clean temp...')  
68
        shutil.rmtree(tmpdir)
H
hypox64 已提交
69
    if tmp_init:
70 71 72 73 74 75 76 77 78 79
        os.makedirs(tmpdir)
        os.makedirs(os.path.join(tmpdir, 'video2image'))
        os.makedirs(os.path.join(tmpdir, 'addmosaic_image'))
        os.makedirs(os.path.join(tmpdir, 'mosaic_crop'))
        os.makedirs(os.path.join(tmpdir, 'replace_mosaic'))
        os.makedirs(os.path.join(tmpdir, 'mosaic_mask'))
        os.makedirs(os.path.join(tmpdir, 'ROI_mask'))
        os.makedirs(os.path.join(tmpdir, 'ROI_mask_check'))
        os.makedirs(os.path.join(tmpdir, 'style_transfer'))
 
H
hypox64 已提交
80 81 82 83
def file_init(opt):
    if not os.path.isdir(opt.result_dir):
        os.makedirs(opt.result_dir)
        print('makedir:',opt.result_dir)
84
    clean_tempfiles(opt,True)
H
hypox64 已提交
85 86 87 88 89 90 91

def second2stamp(s):
    h = int(s/3600)
    s = int(s%3600)
    m = int(s/60)
    s = int(s%60)
    return "%02d:%02d:%02d" % (h, m, s)
H
HypoX64 已提交
92

93 94 95 96 97 98 99 100
def counttime(t1,t2,now_num,all_num):
    '''
    t1,t2: time.time()
    '''
    used_time = int(t2-t1)
    all_time = int(used_time/now_num*all_num)
    return second2stamp(used_time)+'/'+second2stamp(all_time)

H
HypoX64 已提交
101 102 103 104 105 106 107 108
def get_bar(percent,num = 25):
    bar = '['
    for i in range(num):
        if i < round(percent/(100/num)):
            bar += '#'
        else:
            bar += '-'
    bar += ']'
109
    return bar+' '+"%.2f"%percent+'%'
H
hypox64 已提交
110

H
hypox64 已提交
111
def copyfile(src,dst):
H
hypox64 已提交
112 113 114 115
    try:
        shutil.copyfile(src, dst)
    except Exception as e:
        print(e)
116 117 118 119 120 121 122 123

def opt2str(opt):
    message = ''
    message += '---------------------- Options --------------------\n'
    for k, v in sorted(vars(opt).items()):
        message += '{:>25}: {:<35}\n'.format(str(k), str(v))
    message += '----------------- End -------------------'
    return message