usar modulo tqdm com barra de progresso no terminal
This commit is contained in:
@ -11,10 +11,10 @@ def listar_ficheiros(
|
||||
extensoes: list[str] | None = None,
|
||||
) -> list:
|
||||
"""
|
||||
Percorrer recursivamente a pasta de origem e devolver lista de caminhos completos dos ficheiros.
|
||||
Percorrer recursivamente a pasta de origem e devolver lista de caminhos
|
||||
completos dos ficheiros.
|
||||
versão Pathlib
|
||||
"""
|
||||
sha256_ficheiros: dict[str, str] = {}
|
||||
caminho_origem = Path(origem)
|
||||
if not caminho_origem.exists():
|
||||
raise FileNotFoundError(f"Erro: a pasta '{origem}' não existe.")
|
||||
@ -30,17 +30,17 @@ def listar_ficheiros(
|
||||
]
|
||||
# criar lista de ficheiros
|
||||
ficheiros = []
|
||||
for item in tqdm(
|
||||
caminho_origem.rglob("*"), desc="A listar ficheiros", unit="ficheiro"
|
||||
):
|
||||
if item.is_file():
|
||||
# filtro de ficheiros ocultos
|
||||
if not incluir_ocultos and item.name.startswith("."):
|
||||
continue
|
||||
# filtro de extensoes
|
||||
if extensoes and item.suffix.lower() not in extensoes:
|
||||
continue
|
||||
ficheiros.append(str(item))
|
||||
itens = caminho_origem.rglob("*")
|
||||
|
||||
with tqdm(desc="A listar ficheiros", unit="ficheiro") as barra_progresso:
|
||||
for item in itens:
|
||||
if item.is_file():
|
||||
if not incluir_ocultos and item.name.startswith("."):
|
||||
continue
|
||||
if extensoes and item.suffix.lower() not in extensoes:
|
||||
continue
|
||||
ficheiros.append(str(item))
|
||||
barra_progresso.update(1)
|
||||
|
||||
return ficheiros
|
||||
|
||||
@ -51,7 +51,8 @@ def listar_ficheiros_unicos(
|
||||
extensoes: list[str] | None = None,
|
||||
) -> dict[str, list[str]]:
|
||||
"""
|
||||
Listar ficheiros unicos na pasta origem, agrupando caminhos por assinatura SHA256.
|
||||
Listar ficheiros unicos na pasta origem, agrupando caminhos por assinatura
|
||||
SHA256.
|
||||
Retorna dicionario: { assinatura: [caminho1, caminho2, ...] }
|
||||
"""
|
||||
caminho_origem = Path(origem)
|
||||
@ -70,19 +71,18 @@ def listar_ficheiros_unicos(
|
||||
|
||||
# dicionario de ficheiros com assinatura
|
||||
ficheiros_por_assinatura: dict[str, list[str]] = {}
|
||||
itens = caminho_origem.rglob("*")
|
||||
|
||||
for item in tqdm(
|
||||
caminho_origem.rglob("*"), desc="A listar ficheiros únicos", unit="ficheiro"
|
||||
):
|
||||
if item.is_file():
|
||||
# filtro ficheiros ocultos
|
||||
if not incluir_ocultos and item.name.startswith("."):
|
||||
continue
|
||||
# filtro extenseos
|
||||
if extensoes and item.suffix.lower() not in extensoes:
|
||||
continue
|
||||
assinatura = gerar_assinatura_SHA256_ficheiro(str(item))
|
||||
ficheiros_por_assinatura.setdefault(
|
||||
assinatura, []).append(str(item))
|
||||
with tqdm(desc="A listar ficheiros", unit="ficheiro") as barra_progresso:
|
||||
for item in itens:
|
||||
if item.is_file():
|
||||
if not incluir_ocultos and item.name.startswith("."):
|
||||
continue
|
||||
if extensoes and item.suffix.lower() not in extensoes:
|
||||
continue
|
||||
assinatura = gerar_assinatura_SHA256_ficheiro(str(item))
|
||||
ficheiros_por_assinatura.setdefault(
|
||||
assinatura, []).append(str(item))
|
||||
barra_progresso.update(1)
|
||||
|
||||
return ficheiros_por_assinatura
|
||||
|
||||
Reference in New Issue
Block a user