Table des matières
- L’environnement de travail
- 1. Python2 ou Python3 ?
- 2. L’environnement de travail
- 3. Un terminal et l’interpréteur Python
- 4. La configuration de l’environnement Python
- 4.1 Étape 1 : repérez le binaire Python qui vous intéresse
- 4.2 Étape 2 : vérifiez la présence de la commande pip qui va avec
- 4.3 Étape 3 : vérifiez le module virtualenv
- 4.4 Étape 4 : installez virtualenv wrapper
- 5. Les autres outils nécessaires
- Le côté fonctionnel classique de Python
- 1. Introduction
- 2. Premiers pas
- 2.1 La commande python
- 2.2 L’indentation comme syntaxe
- Quelques instructions de base
- 1. Introduction
- 2. Les opérateurs
- 3. Les variables
- 4. Quelques instructions de base
- 5. Résumé
- Les types de données en Python
- 1. Introduction
- 2. Les booléens
- 2.1 Les opérateurs booléens
- 2.2 Les comparaisons logiques
- 3. Les numériques
- 3.1 Les entiers
- 3.2 Les flottants
- 3.3 Les opérations
- 4. Les alphanumériques
- 4.1 Les opérations applicables aux chaînes de caractères
- 4.2 Les méthodes applicables aux chaînes de caractères
- 4.3 Les modificateurs de chaînes ou « string modifiers »
- 5. Les conteneurs ou séquentiels
- 5.1 Les listes
- 5.2 Les dictionnaires
- 5.3 Les tuples
- 5.4 Les sets
- 5.5 Les frozensets
- 6. Autres types de données
- 7. Résumé
- Le langage Python
- 1. Introduction
- 2. La fonction print()
- 2.1 Print() formatage C-STYLE
- 2.2 Print() formatage chaîne.format()
- 2.3 Print() les autres options
- 3. Les structures conditionnelles
- 4. Les boucles
- 4.1 Quelques exemples simples
- 4.2 La fonction range()
- 4.3 Un « else » dans les boucles
- 4.4 sorted() et sort()
- 4.5 enumerate()
- 4.6 L’affectation parallèle dans les boucles
- 4.7 Les dictionnaires et la fonction items()
- 4.8 Les listes en compréhension
- 5. Les fonctions
- 5.1 Les arguments de fonctions avec Python
- 5.2 Les fonctions et la portée des variables
- 5.3 La notion de passage de paramètres par référence
- 6. Les modules et les paquets
- 6.1 Les espaces de noms
- 6.2 Les paquets ou packages
- 6.3 La recherche des modules et paquets
- 6.4 Le fichier __main__.py
- 6.5 Exemple avec la gestion d’un restaurant
- 7. Les exceptions et la gestion des erreurs
- 7.1 Les instructions try … except … finally
- 7.2 L’instruction assert
- 7.3 Déclencher des exceptions
- 8. Les entrées/sorties (fichier et autres)
- 9. L’instruction With
- 10. Exemple de script : hdump
- 11. Résumé
- Le côté Objet de Python
- 1. Introduction
- 2. La POO
- 3. L’objet
- 4. La classe
- 5. Une classe simple
- 6. Ajoutons des attributs
- 7. Un premier script « objet »
- 8. La surcharge de fonction
- 9. L’héritage
- 10. Exemples de scripts
- 10.1 Ajoutons le format HTML
- 10.2 Ajoutons la balise <table>
- 10.3 Ajoutons le format CSV
- 11. Résumé
- Librairie standard et quelques autres
- 1. Introduction
- 2. La commande pip
- 3. Les modules sys et os
- 3.1 Le module sys
- 3.2 Le module os
- 4. Les options de la ligne de commandes
- 5. L’interception des signaux
- 6. Les fichiers temporaires
- 7. Les modules pour les opérations sur les fichiers et les répertoires
- 7.1 os.path
- 7.2 shutil
- 7.2.1 filecmp
- 7.3 path.py
- 7.4 pathlib
- 8. La gestion des processus et sous-processus
- 8.1 Subprocess.run()
- 8.2 subprocess.popen()
- 8.3 Envoyer une commande plus complexe et récupérer la sortie
- 8.4 Multiprocessing – Le parallélisme par processus
- 9. Mathplotlib
- 10. Les expressions régulières (it’s a kind of magic)
- 10.1 Exemple : récupérer des informations sur l’état du système avec sar (system activity report)
- 10.2 Exemple : récupérer des informations sur la mémoire des processus
- 11. Les dates et le temps (back to the future)
- 11.1 stdlib : calendar, datetime, dateutil, time
- 11.2 Arrow
- 12. Le module logging
- 13. L’accès aux fichiers en mode binaire et le module struct
- 14. La génération de données aléatoires
- 15. L’accès aux bases de données
- 15.1 Les bases de données « SQL »
- 15.2 Les bases de données « NoSQL »
- 16. Les ORM ou Object Relationnal Mapping
- 16.1 SQLAlchemy
- 16.2 Les autres ORM
- 17. Réseau
- 17.1 Un serveur web en une ligne de commande
- 17.2 Envoyer des mails
- 17.3 Python et ssh
- 17.4 Le transfert de fichier avec ftplib
- 17.5 telnet lib
- 18. Python et le réseau des réseaux : Internet
- 18.1 Urllib : requests
- 18.2 Beautiful soup
- 19. Outils
- 19.1 Pexpect
- 19.2 Cmd
- 19.3 shlex – Analyse lexicale simple
- 19.4 Le module humanfriendly
- 20. Résumé
- Aller plus loin avec le langage Python et la POO
- 1. Introduction
- 2. Quelques concepts objet essentiels
- 2.1 Le polymorphisme
- 2.2 L’héritage multiple
- 2.3 Le singleton
- 2.4 La fabrique d’objets
- 2.5 La fermeture, ou closure en anglais
- 3. Les méthodes spéciales d’instances
- 3.1 Les fonctions spéciales classiques
- 3.2 La surcharge des opérateurs
- 4. Le gestionnaire de contexte (with) __enter__, __exit__
- 5. Les objets mutables et non mutables
- 5.1 Les mutables
- 5.2 Les non mutables
- 6. Quelques informations supplémentaires sur les classes en Python
- 6.1 Les attributs implicites
- 6.2 Les fonctions et classes incluses
- 6.3 Les attributs statiques et méthodes statiques
- 6.4 Les __slots__ pour les performances
- 7. Les docstrings – chaînes de documentation
- 7.1 Définition
- 7.2 Usage
- 7.3 Génération de documentation
- 7.4 Tests
- 8. Les décorateurs
- 9. Les itérateurs, générateurs et autres expressions génératrices
- 9.1 Les itérateurs
- 9.2 Les générateurs
- 10. Gérer ses propres exceptions
- 11. Les fonctions natives
- 11.1 Les fonctions natives inclassables
- 11.2 Les fonctions natives binaires
- 11.3 Les fonctions natives de conversion ou de création de type
- 11.4 Les fonctions natives sur les itérables
- 11.5 Les fonctions natives sur les numériques
- 11.6 Les fonctions natives sur les objets
- 12. Résumé
- Récupérer des infos sur le système
- 1. Introduction
- 2. psutil : récupérer des informations sur le système
- 3. Des informations sur les composants
- 3.1 Les processeurs
- 3.2 La mémoire
- 3.3 Les périphériques de stockage
- 3.4 Le réseau
- 4. Capteurs et autres informations
- 4.1 Les capteurs
- 4.2 Autres informations
- 4.2.1 Boot time
- 4.2.2 Les utilisateurs
- 5. Des informations sur les processus
- 5.1 Classe Objet et méthodes fournies par psutil
- 5.2 Principes d’utilisation
- 5.3 Exemples d’utilisation
- 6. Résumé
- Les formats de fichiers populaires
- 1. Introduction
- 2. Le format de fichier « INI »
- 3. Comma Separated Values : CSV
- 4. MS Office
- 5. Le module odfpy
- 5.1 Document Texte
- 5.2 Document Feuille de calcul
- 6. Le module multi-format pyexcel
- 7. Le format de fichier JSON
- 8. Le format de fichier XML
- 9. Le module tarfile pour archives tar
- 10. Le format zip
- 11. Résumé
- Manipulation de données
- 1. Introduction
- 2. SQLite en mémoire
- 2.1 La mission
- 2.2 La récupération des données
- 2.3 La définition de la base de données
- 2.4 Le script principal
- 3. SMS vers HTML (ou autre)
- 3.1 Extraction des SMS
- 3.2 Transformation des SMS
- 3.3 Conversion
- 3.4 Script
- 4. D’une base à l’autre
- 4.1 Le contexte
- 4.2 Les schémas
- 4.3 Le script principal
- 5. Résumé
- La génération de rapports
- 1. Introduction
- 2. La génération de PDF : Reportlab
- 2.1 Hello World en PDF et Reportlab
- 2.2 Une table avec Reportlab
- 2.3 Encore une table, mais en mieux
- 3. Le moteur de patrons Jinja2
- 3.1 Jinja et le HTML
- 3.2 Ajoutons un peu de CSS (Cascading Style Sheet)
- 3.3 Autre cas d’utilisation
- 4. Un autre moteur de patron : Pug/Jade
- 4.1 Prérequis : installation de Pug
- 4.2 Le début du projet
- 4.3 Bootstrap, c’est bien
- 4.4 Make, c’est bien
- 5. Résumé
- Simulation d’activité
- 1. Introduction
- 2. Description
- 3. La structure des données
- 4. L’initialisation de la base de données
- 4.1 definitions.py
- 4.2 populate.py
- 5. La connexion à la base de données
- 6. Les compteurs
- 7. Les commandes clients
- 8. La livraison des commandes clients
- 9. La facturation des commandes livrées
- 10. Le réapprovisionnement du stock
- 11. La réception des commandes fournisseurs
- 12. Utilisation
- 13. Résumé
- Trucs et astuces
- 1. Introduction
- 2. Adapter le copier/coller d’un tableur pour un wiki
- 3. Déballage avec Python (unpacking)
- 4. L’underscore et Python
- 4.1 Dans l’interpréteur
- 4.2 Pour ignorer des valeurs
- 4.3 Dans les boucles
- 4.4 Pour la séparation des milliers
- 4.5 Pour le nommage des variables
- 5. Agacer les CPU et mesurer le temps de son code
- 6. Créer un décorateur (logger interne)
- 7. Bien écrire du code Python (PEP8)
- 7.1 Espaces
- 7.2 Lignes
- 7.3 Tabs et encoding
- 7.4 Encoding : UTF8
- 7.5 Docstring
- 7.6 Nom de variables
- 8. Résumé
- Exemples
- 1. Introduction
- 2. Python Bataille
- 3. Python, vérification d’une main au poker
- 4. Génération de fichiers et répertoires aléatoire
- 5. Graphique d’utilisation d’un serveur sur un mois
- 6. psutil analyse des informations des processus
- 7. Améliorer Apache Index Of
- 7.1 WSGI
- 7.2 Analyse des besoins
- 7.3 Bottle
- 7.4 Uwsgi – Comment se faire un environnement de test & dev ?
- 7.5 Le script startup.py
- 7.6 Le script page_html.py
- 7.7 Les templates
- 7.8 Les fichiers de paramètres
- 7.9 La mise en exploitation
- 7.10 Le résultat
- 8. Résumé
- Aller plus loin avec Python
- 1. Introduction
- 2. Bottle & Flask
- 2.1 Bottle
- 2.2 Flask
- 3. Outils
- 3.1 Watchdog
- 3.2 paramiko
- 3.3 Supervisor
- 4. Interfaces utilisateurs
- 4.1 Interface graphique : Tkinter
- 4.2 Autres interfaces graphiques
- 4.3 Interface console: curses
- 4.4 Interface console : Urwid
- 5. Résumé
- Pour aller encore plus loin
- 1. Introduction
- 2. Twisted
- 3. Brython
- 4. Fuse
- 5. Ipython et Jupyter
- 6. Sphynx
- 7. Ansible
- 8. Le framework Django
- 9. Réseau SCAPY
- 10. Apache Airflow
- 11. Résumé
- Annexes
- 1. Ressources Pyt
Soyez le premier à donner votre avis sur “Scripting Python sous Linux Développez vos outils système”