mirror of
https://github.com/iperov/DeepFaceLive
synced 2025-07-06 21:12:08 -07:00
code release
This commit is contained in:
parent
b941ba41a3
commit
a902f11f74
354 changed files with 826570 additions and 1 deletions
118
xlib/path/path.py
Normal file
118
xlib/path/path.py
Normal file
|
@ -0,0 +1,118 @@
|
|||
from os import scandir
|
||||
from pathlib import Path
|
||||
|
||||
# image_extensions = [".jpg", ".jpeg", ".png", ".tif", ".tiff"]
|
||||
|
||||
# def write_bytes_safe(p, bytes_data):
|
||||
# """
|
||||
# writes to .tmp first and then rename to target filename
|
||||
# """
|
||||
# p_tmp = p.parent / (p.name + '.tmp')
|
||||
# p_tmp.write_bytes(bytes_data)
|
||||
# if p.exists():
|
||||
# p.unlink()
|
||||
# p_tmp.rename (p)
|
||||
|
||||
def scantree(path):
|
||||
"""Recursively yield DirEntry objects for given directory."""
|
||||
for entry in scandir(path):
|
||||
if entry.is_dir(follow_symlinks=False):
|
||||
yield from scantree(entry.path)
|
||||
else:
|
||||
yield entry
|
||||
|
||||
|
||||
def get_files_paths(dir_path, extensions=None, subdirs=False):
|
||||
"""
|
||||
returns array of Path() of files
|
||||
"""
|
||||
dir_path = Path (dir_path)
|
||||
|
||||
result = []
|
||||
if dir_path.exists():
|
||||
|
||||
if subdirs:
|
||||
gen = scantree(str(dir_path))
|
||||
else:
|
||||
gen = scandir(str(dir_path))
|
||||
|
||||
for x in list(gen):
|
||||
if extensions is None or any([x.name.lower().endswith(ext) for ext in extensions]):
|
||||
result.append( Path(x.path) )
|
||||
return sorted(result)
|
||||
|
||||
# def get_image_unique_filestem_paths(dir_path, verbose_print_func=None):
|
||||
# result = get_image_paths(dir_path)
|
||||
# result_dup = set()
|
||||
|
||||
# for f in result[:]:
|
||||
# f_stem = Path(f).stem
|
||||
# if f_stem in result_dup:
|
||||
# result.remove(f)
|
||||
# if verbose_print_func is not None:
|
||||
# verbose_print_func ("Duplicate filenames are not allowed, skipping: %s" % Path(f).name )
|
||||
# continue
|
||||
# result_dup.add(f_stem)
|
||||
|
||||
# return sorted(result)
|
||||
|
||||
# def get_paths(dir_path):
|
||||
# dir_path = Path (dir_path)
|
||||
|
||||
# if dir_path.exists():
|
||||
# return [ Path(x) for x in sorted([ x.path for x in list(scandir(str(dir_path))) ]) ]
|
||||
# else:
|
||||
# return []
|
||||
|
||||
# def get_file_paths(dir_path):
|
||||
# dir_path = Path (dir_path)
|
||||
|
||||
# if dir_path.exists():
|
||||
# return [ Path(x) for x in sorted([ x.path for x in list(scandir(str(dir_path))) if x.is_file() ]) ]
|
||||
# else:
|
||||
# return []
|
||||
|
||||
# def get_all_dir_names (dir_path):
|
||||
# dir_path = Path (dir_path)
|
||||
|
||||
# if dir_path.exists():
|
||||
# return sorted([ x.name for x in list(scandir(str(dir_path))) if x.is_dir() ])
|
||||
# else:
|
||||
# return []
|
||||
|
||||
# def get_all_dir_names_startswith (dir_path, startswith):
|
||||
# dir_path = Path (dir_path)
|
||||
# startswith = startswith.lower()
|
||||
|
||||
# result = []
|
||||
# if dir_path.exists():
|
||||
# for x in list(scandir(str(dir_path))):
|
||||
# if x.name.lower().startswith(startswith):
|
||||
# result.append ( x.name[len(startswith):] )
|
||||
# return sorted(result)
|
||||
|
||||
# def get_first_file_by_stem (dir_path, stem, exts=None):
|
||||
# dir_path = Path (dir_path)
|
||||
# stem = stem.lower()
|
||||
|
||||
# if dir_path.exists():
|
||||
# for x in sorted(list(scandir(str(dir_path))), key=lambda x: x.name):
|
||||
# if not x.is_file():
|
||||
# continue
|
||||
# xp = Path(x.path)
|
||||
# if xp.stem.lower() == stem and (exts is None or xp.suffix.lower() in exts):
|
||||
# return xp
|
||||
|
||||
# return None
|
||||
|
||||
# def move_all_files (src_dir_path, dst_dir_path):
|
||||
# paths = get_file_paths(src_dir_path)
|
||||
# for p in paths:
|
||||
# p = Path(p)
|
||||
# p.rename ( Path(dst_dir_path) / p.name )
|
||||
|
||||
# def delete_all_files (dir_path):
|
||||
# paths = get_file_paths(dir_path)
|
||||
# for p in paths:
|
||||
# p = Path(p)
|
||||
# p.unlink()
|
Loading…
Add table
Add a link
Reference in a new issue