Skip to main content

Gestion intelligente des fichiers et dossiers en Python

Project description

=============================================================================

README.md

=============================================================================

Py-FileX - Gestion intelligente des fichiers 📂

PyPI version Python 3.7+ License: MIT

Py-FileX simplifie la manipulation des fichiers et dossiers en Python avec une API fluide et intuitive. Fini le jonglage entre os, shutil, pathlib et zipfile !

🚀 Installation

pip install py-filex

✨ Fonctionnalités

📄 Gestion des fichiers

  • ✅ Lecture/écriture simplifiée
  • 📁 Copie/déplacement/renommage
  • 🗜️ Compression ZIP
  • 📊 Informations détaillées (taille, dates, hash)
  • 🔗 API fluide et chaînable

📂 Gestion des dossiers

  • 📋 Listing intelligent avec filtres
  • 📊 Analyse (taille, nombre de fichiers)
  • 📁 Copie/déplacement avec options avancées
  • 🗜️ Compression complète
  • 🧹 Nettoyage et maintenance

🎯 Exemples d'utilisation

Fichiers

from filex import File

# Création et manipulation
f = File("data.txt")
f.write("Hello World!")
print(f.read())  # Hello World!

# Copie avec chaînage
f.copy("backup/").zip("archive.zip")

# Informations
print(f.size_human())  # 12 B
print(f.hash_md5())    # a1b2c3...
print(f.created_at())  # 2025-01-15 10:30:45

Dossiers

from filex import Dir

# Création et analyse
d = Dir("my_project")
d.create()

print(d.count_files())     # 42
print(d.size(human_readable=True))  # 1.5 MB

# Listage avec filtres
python_files = d.list_files("*.py", recursive=True)
print(python_files)

# Compression avec exclusions
d.zip("backup.zip", exclude=["*.tmp", "__pycache__", ".git"])

# Copie parallèle
d.copy("backup/", parallel=True, exclude=["node_modules"])

Recherche avancée

from filex import find_files, find_dirs, cleanup_empty_dirs

# Trouver tous les fichiers Python
py_files = find_files("/project", "*.py", recursive=True)

# Nettoyer les dossiers vides
deleted_count = cleanup_empty_dirs("/project")
print(f"{deleted_count} dossiers vides supprimés")

🎨 API fluide

FileX permet le chaînage d'opérations :

from filex import File, Dir

# Chaînage de fichiers
File("source.txt")\
    .copy("temp.txt")\
    .write("Modified content")\
    .zip("final.zip")

# Chaînage de dossiers  
Dir("project")\
    .create()\
    .copy("backup/")\
    .zip("archive.zip")

🛡️ Gestion d'erreurs

FileX utilise des exceptions claires et spécifiques :

from filex import File, FileNotFoundError, PermissionError

try:
    f = File("missing.txt")
    content = f.read()
except FileNotFoundError:
    print("Fichier non trouvé !")
except PermissionError:
    print("Permissions insuffisantes !")

🔧 Fonctionnalités avancées

Copie parallèle

# Copie rapide de gros dossiers
Dir("large_folder").copy("backup/", parallel=True)

Exclusion de fichiers

# Ignorer certains patterns
Dir("project").zip("clean.zip", exclude=[
    "*.tmp", 
    "__pycache__", 
    "node_modules",
    ".git"
])

Hash et vérification

f = File("important.pdf")
checksum = f.hash_sha256()

# Vérifier l'intégrité plus tard
if f.hash_sha256() == checksum:
    print("Fichier intact !")

📊 Comparaison

Avant (Python standard)

import os
import shutil
from pathlib import Path
import zipfile

# Code verbeux et répétitif
if os.path.exists("file.txt"):
    shutil.copy("file.txt", "backup/")
    
with zipfile.ZipFile("archive.zip", 'w') as zf:
    zf.write("file.txt")

# Taille du dossier
total = 0
for root, dirs, files in os.walk("folder"):
    for file in files:
        total += os.path.getsize(os.path.join(root, file))

Après (FileX)

from filex import File, Dir

# Code simple et expressif
File("file.txt").copy("backup/").zip("archive.zip")

# Taille en une ligne
size = Dir("folder").size(human_readable=True)

🤝 Contribution

Les contributions sont les bienvenues ! Consultez le guide de contribution.

📝 Licence

MIT - voir le fichier LICENSE pour plus de détails.

🔗 Liens


Py-FileX - Parce que manipuler des fichiers devrait être simple ! 🎯

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_filex-1.0.0.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_filex-1.0.0-py3-none-any.whl (13.6 kB view details)

Uploaded Python 3

File details

Details for the file py_filex-1.0.0.tar.gz.

File metadata

  • Download URL: py_filex-1.0.0.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for py_filex-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9dcdc0789b6464a5c253a21cdc092e5a63d3c6f55f8c53d86aeeaf5fda9b8d0e
MD5 0392ab82631f8286b0ad28ba698606ac
BLAKE2b-256 bf6856397b6ed27e99ebfadcee61b382ededfe36ad44797f0a5e717a6ed7c37a

See more details on using hashes here.

File details

Details for the file py_filex-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: py_filex-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 13.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for py_filex-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b40e5e6477d4760b5a9eb80e27bf1d660edfad0c598d57102d215a4248ba5f2a
MD5 6a1fd9e985b449db27d3caef4eea3587
BLAKE2b-256 fe8bfb03f58cf0e791c6a58d5b18f4e5832d1602d1caff2ae2731fd59d8542ca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page