A little CLI utility written in Python to help you count files, grouped by extension, in a directory. By default, it will count files recursively in current working directory and all of its subdirectories, and will display a table showing the frequency for each file extension (e.g.: .txt, .py, .html, .css) and the total number of files found.
Clone or download
victordomingos Merge pull request #97 from NataliaBondarenko/master
renamed to topic, divided help extension text to sections, updated short desc for parser
Latest commit 2068cd6 Jan 15, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
count_files added blank lines Jan 15, 2019
docs updated example text Sep 13, 2018
tests ordering tests Dec 30, 2018
.gitignore added test files(search with list) Sep 8, 2018
LICENSE license May 22, 2018
README.md updated documentation link Sep 11, 2018
changelog.txt Update changelog.txt Jan 12, 2019
setup.py upgraded status to stable; updated changelog.txt Sep 8, 2018

README.md

English | Português | Русский | Українська

Count Files Github commits (since latest release)

A command-line interface (CLI) utility written in Python to help you counting or searching files with a specific extension, files without an extension or all files regardless of the extension, in the specified directory.

Count Files_screenshot - counting files by extension

Documentation

Dependencies

To run this application, you need to have a working Python 3.6+ installation.

Installation

On regular desktop operating systems

Count Files is a platform-independent application that run in Python and can be easily installed using pip:

pip3 install count-files

If you are interested in the current development version, you can simply clone this git repository and install it using pip3 install -e. Please notice, however, that only released versions are expected to be stable and usable. The development code is often unstable or buggy, for the simple reason that it is a work in progress.

On iPhone or iPad (in Pythonista 3 for iOS)

It may also be used on iOS (iPhone/iPad) using the StaSh command-line in the Pythonista 3 app. Please see documentation for further instructions.

How to use

To check the list of available options and their usage, you just need to use one of the following commands:

count-files -h
count-files --help

By default, the program counts or searches for files recursively in current working directory and all of its subdirectories. Any hidden files or folders will be ignored. The names of extensions are case insensitive by default. The results for ini and INI will be the same.

Optionally, you can pass it a path to the directory to scan, choose non-recursive counting or searching, process the file extensions with case-sensitive mode and enable search or counting in hidden files and folders.
You can get additional information about the size of each found file and see a short preview for text files.
See more about CLI arguments.

The most simple form of usage is to type a simple command in the shell, without any arguments. It will display a table showing the frequency for each file extension (e.g.: .txt, .py, .html, .css) and the total number of files found.

count-files

Another main feature of this application consists in searching files by a given extension, which presents to the user a list of all found files paths.

count-files -fe txt [path]
count-files --file-extension txt [path]

You can also count the total number of files with a certain extension, without listing them.

count-files -t py [path]
count-files --total py [path]

For information about files without an extension, specify a single dot as the extension name.

count-files -fe . [path]
count-files --file-extension . [path]
count-files -t . [path]
count-files --total . [path]

If you need to list or to count all the files, regardless of the extension, specify two dots as the extension name.

count-files -fe .. [path]
count-files --file-extension .. [path]
count-files -t .. [path]
count-files --total .. [path]

Did you find a bug or do you have a suggestion?

Please, open a new issue or a pull request to the repository.