Skip to content

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

🔍 Disk File Type Analyzer

🇷🇺 Русский · 🇬🇧 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).


✨ Features

  • 🚀 Fast recursive scan via os.walk with 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)

🌍 Localization

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 ru

Want to add another language? Just add one block to STRINGS in i18n.py — everything else picks it up automatically.

📦 Installation

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 treemap

Requirements: Python 3.8+, matplotlib, numpy, optionally squarify.


🚀 Usage

# 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"

⚙️ CLI options

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

🖼 Sample output

══════════════════════════════════════════════════════════════════
  🔍 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)

🛠 Dependencies

  • matplotlib — charts
  • numpy — math
  • squarify — treemap (optional)

🤝 Contributing

Pull requests are welcome! Feel free to open an issue or submit a PR.


📄 License

Released under the MIT license — see LICENSE.