English | Português | Русский | Українська
Um utilitário de linha de comandos (CLI) escrito em Python para ajudar a contar ficheiros por extensão, numa determinada pasta. Por predefinição, a aplicação contará os ficheiros recursivamente na pasta de trabalho atual e em todas as suas subpastas e apresentará uma tabela mostrando a frequência de cada extensão de ficheiro (p.ex.: .txt, .py, .html, .css) e o número total de ficheiros encontrados.
Sistemas operativos suportados: Linux, macOS, Windows. Pode ainda ser Sistemas operativos suportados: Linux, macOS, Windows. Pode ainda ser utilizado em iOS (iPhone/iPad) utilizando a linha de comandos StaSh na app Pythonista 3.
A atual versão de desenvolvimento pode ser instalada com o comando
pip install -e
, seguido do caminho para a pasta principal do projeto (a
mesma pasta que contém o ficheiro setup.py
). Para executar esta aplicação é
necessária uma instalação do Python 3.6 ou superior. Procuramos manter no
mínimo as dependências externas, de modo a manter a compatibilidade com
diferentes plataformas, incluindo Pythonista em iOS.
Planeamos submeter esta aplicação ao PyPI tão brevemente quanto possível, para permitir oferecer uma forma de instalação e atualização mais simples. Enquanto isso não acontece, estejam à vontade para dar uma olhada na última secção e talvez considerar contribuir também para este projeto.
Primeiro, irá precisar de um ambiente Python e uma consola de linha de comandos compatível com Python 3. No momento presente, isto significa que precisa de ter instalada uma app chamada Pythonista 3 (que é, entre outras coisas, um excelente ambiente para desenvolvimento e execução de aplicações de Python puro em iOS).
Depois, precisará de instalar a
StaSh, que é uma consola de linha de
comandos baseada em Python, concebida especificamente para correr no
Pythonista. Irá permitir executar comandos bem úteis como wget
, git clone
,
pip install
e muitos outros. Merece realmente um atalho no ecrã principal do
seu iPhone ou iPad.
Depois de seguir as instruções para a instalação da StaSh, poderá precisar de a atualizar para uma versão mais recente. Experimente este comando:
selfupdate.py -f bennr01:command_testing
De seguida, force o encerramento do Pythonista, reiniciando-o de seguida, e inicie novamente a StaSh. Deverá estar agora a correr em Python 3. Neste momento, pode tentar instalar esta aplicação, diretamente a partir deste repositório:
pip install victordomingos/Count-files
Se tudo correr bem, o comando acima deverá
colocar um pacote chamado count_files
dentro da pasta
~/Documents/site-packages-3
e criar um script de execução chamado
count-files.py
em stash_extensions/bin
. De seguida,
force o encerramento do Pythonista, reinicie a app e inicie novamente a StaSh.
Já deverá conseguir executar esta aplicação diretamente a partir da consola
para contar quaisquer ficheiros que possa ter no ambiente do Pythonista.
De um modo geral, podem ser indicados argumentos tanto na forma
abreviada como na forma extensa. Por exemplo: -a
ou --all
.
usage: count-files [-h] [-hc]
[-v] [-st]
[-a] [-c]
[-nr] [-nf]
[-alpha]
[-t EXTENSION]
[-sf] [-ts]
[-fe FILE_EXTENSION] [-fs]
[-p] [-ps PREVIEW_SIZE]
[path]
usage: count-files [--help] [--help-cmd]
[--version] [--supported-types]
[--all] [--case-sensitive]
[--no-recursion] [--no-feedback]
[--sort-alpha]
[--total EXTENSION]
[--show-folders] [--total-size]
[--file-extension FILE_EXTENSION] [--file-sizes]
[--preview] [--preview-size PREVIEW_SIZE]
[path]
A forma mais simples de utilização consiste na introdução de um comando simples na linha de comandos, sem quaisquer argumentos. Assim, para contar todos os ficheiros na pasta atual e em todas as suas subpastas, ignorando pastas e ficheiros escondidos:
count-files
Por predefinição, a aplicação contará os ficheiros recursivamente na pasta de trabalho atual e em todas as suas subpastas e apresentará no final uma tabela mostrando a frequência de cada extensão de ficheiro (p.ex.: .txt, .py, .html, .css) e o número total de ficheiros encontrados. Quaisquer pastas ou ficheiros escondidos serão ignorados por defeito.
Uma outra funcionalidade principal da aplicação consiste na pesquisa de ficheiros pela sua extensão, que permite obter uma lista de todos os ficheiros encontrados ou, opcionalmente, apenas o numero de ficheiros.
count-files -fe txt
count-files --file-extension txt
Opcionalmente, é possivel indicar um caminho para a pasta a processar. Se
preferir, poderá deixar esse argumento vazio, e a aplicação irá contar os
ficheiros da pasta atual. Para processar os ficheiros na sua pasta de
utilizador, poderá indicar o caminho ~
. No caso de haver espaços nos
nomes de pastas ou ficheiros, o caminho deve ser especificado "entre aspas"
.
Exemplo para Windows:
count-files "~\Ambiente de Trabalho\Nova pasta"
Os argumentos opcionais -nr
ou --no-recursion
dizem à aplicação para não
percorrer de forma recursiva todas as subpastas (ou seja, pesquisar apenas na
raiz da pasta indicada).
Para consultar a lista de opções disponíveis e o seu modo de funcionamento, basta utilizar um dos seguintes comandos:
count-files -h
count-files --help
Por predefinição, serão ignorados ficheiros e pastas que é suposto estarem
escondidos, mas é possível acrescentar os argumentos opcionais -a
ou --all
para incluir todos os ficheiros na contagem.
- Windows: ficheiros e pastas com em que o atributo FILE_ATTRIBUTE_HIDDEN é
True
. - Linux, macOS: aqueles cujos nomes começam por "." (ponto).
As extensões de ficheiros são tratadas sem distinguir maiúsculas/minúsculas.
Por exemplo, os resultados para ini
e INI
serão iguais. Para distinguir
maiúsculas/minúsculas, use a opção -c
ou --case-sensitive
.
Este utilitário pode ainda ser utilizado para procurar ficheiros que tenham no
seu nome uma determinada extensão (utilizando -fe
ou --file-extension
) e,
opcionalmente, apresentar uma pre-visualização breve (-p
ou --preview
) para
ficheiros de texto. O tamanho do texto de pre-visualização pode ser, de forma
opcional, personalizado através do argumento -ps
ou --preview-size
seguido
de um número inteiro indicando o número de caracteres.
A lista de tipos de ficheiro para os quais está disponível a funcionalidade de
pre-visualização pode ser consultada com o argumento -st
ou
--supported-types
.
Por predefinição, o resultado da pesquisa por uma determinada extensão é
apresentado sob a forma de uma lista com os caminhos completos dos ficheiros
encontrados. Se necessitar de informação sobre o tamanho de cada ficheiro,
utilize o argumento -fs
ou --file-sizes
. Se pretender contar o número
total de ficheiros com uma determinada extensão, sem extensão ou
independentemente da extensão, utilize o argumento -t
ou --total
.
Durante a procura, o programa apresenta um indicador de operação, mostrando no
ecrã, sucessivamente e numa única linha, os nomes de ficheiro processados. Os
nomes de ficheiros não são contudo apresentados, ao buscar por uma determinada
extensão, caso não sejam encontrados ficheiros que obedeçam aos critérios
indicados nessa pasta, ou se os ficheiros estiverem escondidos e não tiver
sido especificado o argumento --all
.
Este mecanismo de feedback está ativo, de forma predefinida, ao contar
ficheiros por extensão (com tabela) e ao contar o número total de ficheiros.
A opção -nf
ou --no-feedback
desativa o feedback. A utilização da opção
--no-feedback
pode permitir obter um processamento um pouco mais rápido.
Ao procurar ficheiros por extensão (usando -fe
ou --file-extension
),
o mecanismo de feedback apresentado é a própria lista de ficheiros.
Argumentos na forma abreviada:
usage: count-files [-a] [-c] [-nr] [-nf] [-t TOTAL] [-sf] [-ts] [path]
Argumentos na forma extensa:
usage: count-files [--all] [--case-sensitive] [--no-recursion] [--no-feedback]
[--total TOTAL] [--show-folders] [--total-size] [path]
Para contar o número total de ficheiros, deverá especificar a extensão de
ficheiro ou utilizar um ponto .
para obter uma contagem dos ficheiros
que não têm extensão. Também poderá utilizar dois pontos sem espaços ..
para obter uma contagem do número total de ficheiros com ou sem extensão.
Contar de forma recursiva o número total de ficheiros com uma extensão específica na pasta atual, incluindo subpastas e ficheiros escondidos:
count-files -a -t txt
count-files --all --total txt
Contar de forma recursiva o número total de ficheiros com uma extensão específica em maiúsculas:
count-files -t JPG -c
count-files --total JPG --case-sensitive
Contar de forma recursiva o número total de ficheiros na pasta atual que não têm extensão:
count-files -t .
count-files --total .
Contar o número total de ficheiros na pasta atual, independentemente de terem ou não uma extensão:
count-files -nr -t ..
count-files --no-recursion --total ..
Argumentos na forma abreviada:
usage: count-files [-a] [-alpha] [-c] [-nr] [-nf] [path]
Argumentos na forma extensa:
usage: count-files [--all] [--sort-alpha] [--case-sensitive] [--no-recursion] [--no-feedback] [path]
Por predefinição, a tabela será ordenada pela frequência das extensões dos
nomes de ficheiros. Se preferir visualizar resultados ordenados
alfabeticamente, basta adicionar o argumento -alpha
or --sort-alpha
.
Contar todos os ficheiros na pasta atual e em todas as suas subpastas, ignorando pastas e ficheiros escondidos, sem distinção de maiúsculas/minúsculas:
count-files
Contar todos os ficheiros na pasta atual e em todas as suas subpastas, ignorando pastas e ficheiros escondidos, com distinção de maiúsculas/minúsculas:
count-files -c
count-files --case-sensitive
Contar todos os ficheiros na pasta atual e em todas as suas subpastas, incluindo pastas e ficheiros escondidos:
count-files -a
count-files --all
Contar todos os ficheiros na pasta atual, ignorando pastas e ficheiros escondidos, mas sem percorrer as suas subpastas:
count-files -nr
count-files --no-recursion
Contar todos os ficheiros numa determinada pasta e nas suas subpastas, ignorando pastas e ficheiros escondidos:
count-files ~/Documents
Contar todos os ficheiros numa determinada pasta, ignorando pastas e ficheiros escondidos, sem percorrer as subpastas, e ordenar alfabeticamente a tabela:
count-files -nr -alpha ~/Documents
count-files --no-recursion --sort-alpha ~/Documents
Contar todos os ficheiros numa determinada pasta e nas suas subpastas, ignorando pastas e ficheiros escondidos, sem feedback relativo ao progresso da operação:
count-files -nf ~/Documents
count-files --no-feedback ~/Documents
Argumentos na forma abreviada:
usage: count-files [-a] [-c] [-nr]
[-fe FILE_EXTENSION] [-fs]
[-p] [-ps PREVIEW_SIZE] [path]
Argumentos na forma extensa:
usage: count-files [--all] [--case-sensitive] [--no-recursion]
[--file-extension FILE_EXTENSION] [--file-sizes]
[--preview] [--preview-size PREVIEW_SIZE] [path]
Procurar recursivamente ficheiros que tenham a extensão .txt
, numa
determinada pasta, incluindo pastas e ficheiros escondidos:
count-files -a -fe txt ~/Documents
count-files --all --file-extension txt ~/Documents
Procurar recursivamente ficheiros com a extensão .css
, numa determinada pasta,
incluindo informação sobre o tamanho dos ficheiros:
count-files -fe css -fs ~/Documents
count-files --file-extension css --file-sizes ~/Documents
Procurar recursivamente ficheiros que tenham a extensão .py
, numa
determinada pasta, e apresentar uma pre-visualização de 500 caracteres para
cada um deles:
count-files -fe py -p -ps 500 ~/Documents
count-files --file-extension py --preview --preview-size 500 ~/Documents
Utilize um único ponto .
para procurar ficheiros que não tenham extensão.
Por exemplo, ficheiros com nomes como .gitignore
, Procfile
, _netrc
.
Procurar recursivamente ficheiros que não têm qualquer extensão no seu nome, numa determinada pasta:
count-files -fe . ~/Documents
count-files --file-extension . ~/Documents
Utilize dois pontos ..
sem espaço entre eles para procurar todos os
ficheiros, independentemente de terem ou não extensão.
Procurar recursivamente todos os ficheiros com ou sem extensão, numa dada pasta (processo semelhante à contagem de ficheiros recursiva, mas aqui o resultado é uma lista com os caminhos dos ficheiros encontrados):
count-files -fe .. ~/Documents
count-files --file-extension .. ~/Documents
Consultar o número da versão do programa:
count-files -v
count-files --version
Consultar a lista dos tipos de ficheiro atualmente suportados para a funcionalidade de pre-visualização:
count-files -st
count-files --supported-types
Por favor avise-nos, abrindo um novo issue ou pull request.