Ouvrage bien docummenté, mais ne correspond pas à mes besoins
AnonymeScripting Python sous Linux Développez vos outils système
1 avis
Ce livre s'adresse aux ingénieurs système qui souhaitent écrire leurs propres outils d'administration d'un système Linux à l'aide du langage Python. Articulé en trois parties, ce livre donne les explications nécessaires au lecteur, suivies d'exemples concrets de difficulté croissante, pour ainsi étendre les possibilités du shell. La connaissance d'un autre langage de programmation, d'un système Linux (quelle que soit la...
Consulter des extraits du livre en ligne
Aperçu du livre papier
- Niveau Confirmé à Expert
- Nombre de pages 763 pages
- Parution juin 2020
- Niveau Confirmé à Expert
- Parution juin 2020
Ce livre s'adresse aux ingénieurs système qui souhaitent écrire leurs propres outils d'administration d'un système Linux à l'aide du langage Python. Articulé en trois parties, ce livre donne les explications nécessaires au lecteur, suivies d'exemples concrets de difficulté croissante, pour ainsi étendre les possibilités du shell. La connaissance d'un autre langage de programmation, d'un système Linux (quelle que soit la distribution) et des principes de base d'Unix est un plus pour la lecture de ce livre.
Débutée par quelques chapitres pour présenter l'environnement de travail et rappeler les bases du langage Python, la première partie présente ensuite les principes de la Programmation Orientée Objet en Python ainsi que la librairie standard de Python.
Dans la deuxième partie, le lecteur apprend grâce à des exemples concrets à concevoir des outils pour récupérer des informations sur le système, accéder aux bases de données, utiliser différents formats de fichiers (.odt, .csv, .ini, .tar, .zip…), générer des documents au format texte, CSV ou HTML, ou encore générer des données aléatoires… À la fin de cette partie, la simulation de l'activité d'une petite entreprise de gestion permet au lecteur de tester des scripts facilitant la prise de commandes, leurs livraisons et la gestion de stock.
La dernière partie propose au lecteur une série d'astuces et d'exemples concrets lui permettant de mettre en oeuvre des techniques plus avancées. L'auteur donne également un aperçu d'outils et d'applications écrites en Python qui font la différence pour aller plus loin dans l'écriture de scripts avec ce langage.
Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.
Quizinclus dans
la version en ligne !
Débutée par quelques chapitres pour présenter l'environnement de travail et rappeler les bases du langage Python, la première partie présente ensuite les principes de la Programmation Orientée Objet en Python ainsi que la librairie standard de Python.
Dans la deuxième partie, le lecteur apprend grâce à des exemples concrets à concevoir des outils pour récupérer des informations sur le système, accéder aux bases de données, utiliser différents formats de fichiers (.odt, .csv, .ini, .tar, .zip…), générer des documents au format texte, CSV ou HTML, ou encore générer des données aléatoires… À la fin de cette partie, la simulation de l'activité d'une petite entreprise de gestion permet au lecteur de tester des scripts facilitant la prise de commandes, leurs livraisons et la gestion de stock.
La dernière partie propose au lecteur une série d'astuces et d'exemples concrets lui permettant de mettre en oeuvre des techniques plus avancées. L'auteur donne également un aperçu d'outils et d'applications écrites en Python qui font la différence pour aller plus loin dans l'écriture de scripts avec ce langage.
Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.
Quizinclus dans
la version en ligne !
- Testez vos connaissances à l'issue de chaque chapitre
- Validez vos acquis
Téléchargements
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.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
- 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.1 stdlib : calendar, datetime, dateutil, time
- 11.2 Arrow
- 15.1 Les bases de données "SQL"
- 15.2 Les bases de données "NoSQL"
- 16.1 SQLAlchemy
- 16.2 Les autres ORM
- 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.1 Urllib : requests
- 18.2 Beautiful soup
- 19.1 Pexpect
- 19.2 Cmd
- 19.3 shlex - Analyse lexicale simple
- 19.4 Le module humanfriendly
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.1 Classe Objet et méthodes fournies par psutil
- 5.2 Principes d’utilisation
- 5.3 Exemples d’utilisation
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 Python
- 2. Memento GIT
- 3. Déboguer en Python
- 4. Compiler Python depuis les sources
- 5. Pourquoi être fan des expressions régulières ?
- 6. Les outils utilisés pour cet ouvrage
- 7. Création d'une machine virtuelle Debian
- 8. Quelques conseils et petites choses à méditer
- 9. La dernière section
- Index
Christophe BONNET
Tour à tour ingénieur système et réseaux, administrateur de base de données, architecte système spécialisé en informatique de Gestion ou développeur, Christophe BONNET a su évoluer et se forger une expérience dans de nombreux domaines de l’informatique. Aujourd’hui ingénieur système et passionné par les langages de programmation et le monde open source à travers les systèmes d'exploitation Unix/Linux et les logiciels libres, il partage à travers ce livre son expérience dans la mise en œuvre du langage Python pour le développement d’outils système sous Linux.