Outils pour utilisateurs

Outils du site


python:python3_pour_asr

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
python:python3_pour_asr [2018/01/05 12:37]
herve ballans
python:python3_pour_asr [2018/01/09 17:42] (Version actuelle)
herve ballans
Ligne 3: Ligne 3:
 ====== Utiliser Python3 en Admin Systèmes et Réseaux ====== ====== Utiliser Python3 en Admin Systèmes et Réseaux ======
  
-Note : les exemples sont testés avec iptyhon3+Note : les exemples sont testés avec le programme //iptyhon3// (Python 3.6.3, IPython 5.1.0) 
 +===== En-tête de fichier ===== 
 + 
 +Spécifie l'​environnement ainsi que l'​encodage utiliusé (utf-8) : 
 + 
 +<​code>​ 
 +#​!/​usr/​bin/​env python3 
 +# -*- coding: utf8 -*- 
 +</​code>​ 
 + 
 +===== Documentation ===== 
 + 
 +Grace aux docstrings, il est très facile (et recommandé!) de documenter son code : 
 + 
 +<​code>​ 
 +def server(): 
 +    """​Définit les caractéristiques du serveur"""​ 
 +</​code>​ 
 + 
 +L'​accès à la documentation peut se faire de 2 manières, soit par la fonction help() : 
 + 
 +<​code>​ 
 +help(server) 
 +</​code>​ 
 + 
 +soit avec l'​attribut //​__doc__//​ 
 +<​code>​ 
 +server.__doc__ 
 +</​code>​
  
 ===== Bash vs Python3 ===== ===== Bash vs Python3 =====
 +
 +Les exemples de cette section n'ont pas grand sens en soi, ils servent juste ici à illustrer la différence entre l'​écriture de routines en bash et en Python. Ces bases serviront pour les sections suivantes.
  
 ==== Boucles ==== ==== Boucles ====
Ligne 24: Ligne 54:
 </​code> ​      | </​code> ​      |
  
 +==== Tests ====
 +
 +On teste si l'​utilsateur est root :
 +
 +^Bash^Python<​sup>​Note</​sup> ​   |
 +| <​code>​
 +if [ `id -u` = 0 ]
 +then
 +    echo "​Attention vous êtes root!"
 +fi
 +</​code> ​      | <​code>​
 +import os
 +current_user = os.popen('​id -u'​).readlines()
 +current_user = _
 +if (current_user == 0):
 +    print("​Attention vous êtes root!"​)
 +</​code> ​      |
 +
 +<​sup>​Note</​sup> ​ : on verra par la suite qu'on peut avantageusement remplacer le module os par subprocess…
 ==== Fonctions ==== ==== Fonctions ====
  
Ligne 46: Ligne 95:
 def processus(**kwargs) def processus(**kwargs)
 </​code>​ </​code>​
 +
 +===== Module os =====
 +
 +ce module contient plusieurs objets permettant d'​intéragir avec le système
  
 ===== Modules utiles (depuis des librairies standards) ===== ===== Modules utiles (depuis des librairies standards) =====
Ligne 134: Ligne 187:
 </​code>​ </​code>​
  
-Note : sur la dernière ligne, il faut ajouter un %%%% entre <font inherit/​Courier New,​Courier,​monospace;;​inherit;;​inherit>​%s</​font>​ et <font inherit/​Courier New,​Courier,​monospace;;​inherit;;​inherit>​n</​font>​ (mais ne s'​affiche pas dans un code block de Dokuwiki)+Note : sur la dernière ligne, il faut ajouter un //​backslash//  ​entre <font inherit/​Courier New,​Courier,​monospace;;​inherit;;​inherit>​%s</​font>​ et <font inherit/​Courier New,​Courier,​monospace;;​inherit;;​inherit>​n</​font>​ (mais ne s'​affiche pas dans Dokuwiki ​!)
  
 Un exemple d'​équivalent avec le module shlex pourrait être : Un exemple d'​équivalent avec le module shlex pourrait être :
python/python3_pour_asr.1515152268.txt.gz · Dernière modification: 2018/01/05 12:37 par herve ballans