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,
|
extensoes: list[str] | None = None,
|
||||||
) -> list:
|
) -> 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
|
versão Pathlib
|
||||||
"""
|
"""
|
||||||
sha256_ficheiros: dict[str, str] = {}
|
|
||||||
caminho_origem = Path(origem)
|
caminho_origem = Path(origem)
|
||||||
if not caminho_origem.exists():
|
if not caminho_origem.exists():
|
||||||
raise FileNotFoundError(f"Erro: a pasta '{origem}' não existe.")
|
raise FileNotFoundError(f"Erro: a pasta '{origem}' não existe.")
|
||||||
@ -30,17 +30,17 @@ def listar_ficheiros(
|
|||||||
]
|
]
|
||||||
# criar lista de ficheiros
|
# criar lista de ficheiros
|
||||||
ficheiros = []
|
ficheiros = []
|
||||||
for item in tqdm(
|
itens = caminho_origem.rglob("*")
|
||||||
caminho_origem.rglob("*"), desc="A listar ficheiros", unit="ficheiro"
|
|
||||||
):
|
with tqdm(desc="A listar ficheiros", unit="ficheiro") as barra_progresso:
|
||||||
if item.is_file():
|
for item in itens:
|
||||||
# filtro de ficheiros ocultos
|
if item.is_file():
|
||||||
if not incluir_ocultos and item.name.startswith("."):
|
if not incluir_ocultos and item.name.startswith("."):
|
||||||
continue
|
continue
|
||||||
# filtro de extensoes
|
if extensoes and item.suffix.lower() not in extensoes:
|
||||||
if extensoes and item.suffix.lower() not in extensoes:
|
continue
|
||||||
continue
|
ficheiros.append(str(item))
|
||||||
ficheiros.append(str(item))
|
barra_progresso.update(1)
|
||||||
|
|
||||||
return ficheiros
|
return ficheiros
|
||||||
|
|
||||||
@ -51,7 +51,8 @@ def listar_ficheiros_unicos(
|
|||||||
extensoes: list[str] | None = None,
|
extensoes: list[str] | None = None,
|
||||||
) -> dict[str, list[str]]:
|
) -> 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, ...] }
|
Retorna dicionario: { assinatura: [caminho1, caminho2, ...] }
|
||||||
"""
|
"""
|
||||||
caminho_origem = Path(origem)
|
caminho_origem = Path(origem)
|
||||||
@ -70,19 +71,18 @@ def listar_ficheiros_unicos(
|
|||||||
|
|
||||||
# dicionario de ficheiros com assinatura
|
# dicionario de ficheiros com assinatura
|
||||||
ficheiros_por_assinatura: dict[str, list[str]] = {}
|
ficheiros_por_assinatura: dict[str, list[str]] = {}
|
||||||
|
itens = caminho_origem.rglob("*")
|
||||||
|
|
||||||
for item in tqdm(
|
with tqdm(desc="A listar ficheiros", unit="ficheiro") as barra_progresso:
|
||||||
caminho_origem.rglob("*"), desc="A listar ficheiros únicos", unit="ficheiro"
|
for item in itens:
|
||||||
):
|
if item.is_file():
|
||||||
if item.is_file():
|
if not incluir_ocultos and item.name.startswith("."):
|
||||||
# filtro ficheiros ocultos
|
continue
|
||||||
if not incluir_ocultos and item.name.startswith("."):
|
if extensoes and item.suffix.lower() not in extensoes:
|
||||||
continue
|
continue
|
||||||
# filtro extenseos
|
assinatura = gerar_assinatura_SHA256_ficheiro(str(item))
|
||||||
if extensoes and item.suffix.lower() not in extensoes:
|
ficheiros_por_assinatura.setdefault(
|
||||||
continue
|
assinatura, []).append(str(item))
|
||||||
assinatura = gerar_assinatura_SHA256_ficheiro(str(item))
|
barra_progresso.update(1)
|
||||||
ficheiros_por_assinatura.setdefault(
|
|
||||||
assinatura, []).append(str(item))
|
|
||||||
|
|
||||||
return ficheiros_por_assinatura
|
return ficheiros_por_assinatura
|
||||||
|
|||||||
Reference in New Issue
Block a user