🇷🇺 Русский · 🇬🇧 English · 🇨🇳 中文
⚠️ Note: This translation was made by AI. There may be inaccuracies or awkward phrasing. If you spot an error, feel free to open an issue or PR.
Disk File Type Analyzer is a utility for analyzing file types on a disk. It recursively scans directories, groups files by extension, skips system folders, and generates clear visualizations (bar chart, pie chart, treemap).
- 🚀 Fast recursive scan via
os.walkwith in-place directory pruning - 🚫 Smart system-path exclusion — Windows (
Windows,Program Files,$Recycle.Bin, …), Linux (proc,sys,usr, …), dev junk (node_modules,.git,__pycache__, …) - 📊 ASCII report in terminal — top by size and by file count
- 🎨 Three chart types — horizontal bar, pie, treemap
- 🌗 Dark & light themes for charts
- 🎯 Filters —
--only,--exclude,--min-size - 🖥 Headless-friendly (SSH, servers, WSL)
- 🪟 Cross-platform — Windows, Linux, macOS
- 🌍 Multilingual — out-of-the-box support for three languages: Russian, English, Chinese (auto-detected from system locale, or via
--lang)
The tool speaks three languages out of the box:
| Code | Language | Flag |
|---|---|---|
🇷🇺 ru |
Russian | --lang ru |
🇬🇧 en |
English (default fallback) | --lang en |
🇨🇳 zh |
Chinese | --lang zh |
By default the language is auto-detected from your system locale
(LC_ALL, LANG, locale.getdefaultlocale()). You can also force it:
python analyze.py ~ --lang ru # Russian output
python analyze.py ~ --lang en # English output
python analyze.py ~ --lang zh # Chinese output
python analyze.py --help --lang ruWant to add another language? Just add one block to STRINGS in i18n.py —
everything else picks it up automatically.
git clone https://github.com/DarkShyMW/Disk-File-Type-Analyzer.git
cd Disk-File-Type-Analyzer
pip install matplotlib numpy
pip install squarify # optional, for treemapRequirements: Python 3.8+, matplotlib, numpy, optionally squarify.
# Analyze home directory
python analyze.py ~
# Only video & images, top-20
python analyze.py ~/Downloads --only .mp4,.mkv,.jpg,.png --top 20
# Analyze entire C: drive without exclusions (slow!)
python analyze.py C:\ --include-system -o c_disk.png
# Only files > 1 MB, no charts
python analyze.py /data --min-size 1048576 --no-charts
# Custom exclusions
python analyze.py . --exclude "vendor,target,.next"| Flag | Description | Default |
|---|---|---|
path |
Path to analyze | . |
-n, --top |
How many top extensions to show | 15 |
-o, --output |
Output chart file | file_analysis.png |
--min-size |
Minimum file size (bytes) | 0 |
--include-system |
Do NOT exclude system paths | off |
--exclude |
Extra dirs, comma-separated | — |
--only |
Only these extensions | — |
--light |
Light chart theme | off |
--no-charts |
Skip chart generation | off |
--show |
Show chart window | off |
══════════════════════════════════════════════════════════════════
🔍 FILE TYPE ANALYSIS RESULTS
══════════════════════════════════════════════════════════════════
Total files: 124,532
Total size: 48.73 GB
Unique extensions: 312
📦 TOP-15 BY SIZE
──────────────────────────────────────────────────────────────
.mp4 ██████████████████████ 18.42 GB ( 412)
.mkv ███████████████░░░░░░░ 12.11 GB ( 188)
.zip ██████░░░░░░░░░░░░░░░░ 5.23 GB ( 340)
matplotlib— chartsnumpy— mathsquarify— treemap (optional)
Pull requests are welcome! Feel free to open an issue or submit a PR.
Released under the MIT license — see LICENSE.