Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

manipulation chaines - remplacant string.replace() - append d'un fichier vhost apache

31 réponses
Avatar
R12y
Bonjour,

Pour des raison didactiques, je me suis lancé dans la traduction en
python de mes scripts shell. Du moins pour ceux qui pouvaient se
transformer ainsi, sans heurts.

Parmis eux, un script qui consiste à ajouter une section de VHost à
apache.
Pour faire court, une section Vhost apache est un morceau de texte
ressemblant à ceci:

<VirtualHost *>
ServerName www.toto.fr
ServerAlias toto.fr
DocumentRoot /home/toto
</VirtualHost>

En vrai sur mon apache cette section fait environ 15 lignes mais tous les
Vhosts ont la même tronche.

Le cript chell actuel, s'invoque comme ceci:
$ addvhost.sh toto.fr

Il s'occupe avec un coup de awk à isoler le "toto" du "fr" pour former la
chaîne /home/toto et puis le reste va tout seul. Ce n'est que mise bout
à bout de choses simples.

J'ai donc un modèle (template?) de Vhost, qui rapporté à notre exmple
serait:

<VirtualHost *>
ServerName FQDN
ServerAlias DN
DocumentRoot HOMEDN
</VirtualHost>

Et le scrip remplaçait les mot en majuscules par ce qu'il faut.
Maintenant j'en viens aux questions.

Vaut-il mieux que je conserve le modèle en dur dans le même fichier que
le script? dans un fichier séparé? Dans la mesure ou ce script ne sera
utilisé que quand on ajoute un Vhost, c'est à dire une fois par semaine
tout au plus.

J'ai été surpris que dans python 2.4, replace(), du module strig est
dans la catégorie des fonctions dépréciées. Mais il n'est indiquée
nulle part dans le chapitre la fonction qui est censée la remplacer.
Laquelle est-elle s'il vous plait?

Merci.

--
SPIP, phpNuke, Plone, opengroupware... c'est bien
CPS c'est mieux: http://www.cps-project.org/
Hébergement de sites CPS: http://www.objectis.org/

10 réponses

1 2 3 4
Avatar
Blaise Li
Christophe wrote in message <4325a4d2$0$964$:

Fait au plus simple (mais écris lisiblement et commente ;-) !!!). Si ça


Essaye plutôt d'écrire lisiblement sans commenter. Les commentaires
gènent à la lisibilité et peuvent mentir. Rien ne vaut du code
compréhensible sans :)


Je veux bien que python soit particulièrement intuitif et lisible, mais
quand même, j'ai du mal à voir comment je m'y retrouverais sans mettre
de commentaires, alors si je veux que mon programme soit lisible par
quelqu'un d'autre, je ne me priverais pas de commenter. Si on lit dans
un éditeur avec coloration syntaxique, les commentaires ne gènent pas
tant que ça, je trouve.

bli


Avatar
Christophe
Christophe wrote in message <4325a4d2$0$964$:


Fait au plus simple (mais écris lisiblement et commente ;-) !!!). Si ça


Essaye plutôt d'écrire lisiblement sans commenter. Les commentaires
gènent à la lisibilité et peuvent mentir. Rien ne vaut du code
compréhensible sans :)



Je veux bien que python soit particulièrement intuitif et lisible, mais
quand même, j'ai du mal à voir comment je m'y retrouverais sans mettre
de commentaires, alors si je veux que mon programme soit lisible par
quelqu'un d'autre, je ne me priverais pas de commenter. Si on lit dans
un éditeur avec coloration syntaxique, les commentaires ne gènent pas
tant que ça, je trouve.

bli


C'est simple. Utilise des noms de variables explicites, utilise des noms
de fonction explicites.

Plutot que de faire :

# calcule le potentiel zozifiant :
c = max( sin(a+2) * sgn(b) )

Fait :

def potentiel_zozifiant(couleur, taille):
return max( sin(couleur+2) * sgn(taille) )

et plus loin :

potentiel = potentiel_zozifiant(a,b)



Avatar
Do Re Mi chel La Si Do
Bonsoir !

Perso, je trouve plus lisible :
# calcule le potentiel zozifiant :
c = max( sin(a+2) * sgn(b) )
que :
def potentiel_zozifiant(couleur, taille):
return max( sin(couleur+2) * sgn(taille) )

potentiel = potentiel_zozifiant(a,b)


Mais, bon, chacun fait comme il veut.


@-salutations

Michel Claveau
Avatar
Christophe Cavalaria
Do Re Mi chel La Si Do wrote:

Bonsoir !

Perso, je trouve plus lisible :
# calcule le potentiel zozifiant :
c = max( sin(a+2) * sgn(b) )
que :
def potentiel_zozifiant(couleur, taille):
return max( sin(couleur+2) * sgn(taille) )

potentiel = potentiel_zozifiant(a,b)


Mais, bon, chacun fait comme il veut.


Pour une simple ligne de code, oui, d'ailleurs c'est pas mal comme ça
aussi :

potentiel_zozifiant = max( sin(couleur+2) * sgn(taille) )

Pas besoin de commentaire.

Pour les blocs de code de taille plus conséquente, ça marche bien.

Avatar
William Dode
On 14-09-2005, Do Re Mi chel La Si Do wrote:
Bonsoir !

Perso, je trouve plus lisible :
# calcule le potentiel zozifiant :
c = max( sin(a+2) * sgn(b) )


Oui mais le problème c'est que tu peux te retrouver un jour avec des
commentaires faux, ce qui est pire que pas de commentaire du tout et
pourtant très fréquent...

# calcul la somme de a et b
c = a - b

--
William Dodé - http://flibuste.net

Avatar
R12y
On Wed, 14 Sep 2005 19:06:28 +0200, Christophe wrote:

def potentiel_zozifiant


Non conforme au PEP.
ça serait plutot "potentielZozifiant"

--
SPIP, phpNuke, Plone, opengroupware... c'est bien
CPS c'est mieux: http://www.cps-project.org/
Hébergement de sites CPS: http://www.objectis.org/

Avatar
Do Re Mi chel La Si Do
Salut !


Un commentaire est toujours faux, puisqu'il ne peut représenter sa cible
(conséquence du théorème d'incomplétude des systèmes, de Gödel). On peut
d'ailleurs appliquer le même raisonnement au code, vis-à-vis de son
objectif...

Et lycée de Versailles.

Disons, que, la plupart du temps, c'est acceptable.


@-salutations

Michel Claveau
Avatar
William Dode
On 14-09-2005, R12y wrote:
On Wed, 14 Sep 2005 19:06:28 +0200, Christophe wrote:

def potentiel_zozifiant


Non conforme au PEP.
ça serait plutot "potentielZozifiant"



Non c'est l'inverse, c'est bien potentiel_zozifiant qui est conforme :

Function Names

Function names should be lowercase, possibly with words separated by
underscores to improve readability. mixedCase is allowed only in
contexts where that's already the prevailing style (e.g. threading.py),
to retain backwards compatibility.


--
William Dodé - http://flibuste.net


Avatar
Blaise Li
Christophe wrote in message <43285715$0$975$:

C'est simple. Utilise des noms de variables explicites, utilise des noms
de fonction explicites.


Je m'efforce de le faire, mais des fois j'ai la flemme de donner des
noms de fonction tres longs:

def lit_fichier_a_un_arbre_au_format_nexus(fichier):

puis

def lit_fichier_a_plusieurs_arbres_au_format_nexus(fichier):

et encore

def lit_fichier_a_plusieurs_arbres_reformates_au_format_perso(fichier):

Mais c'est vrai que je pourrais peut-être me débrouiller pour ne pas
avoir deux fonctions differentes pour effectuer des taches proches.

bli

Avatar
Paul Gaborit
À (at) Wed, 14 Sep 2005 20:25:06 +0000 (UTC),
William Dode écrivait (wrote):
Oui mais le problème c'est que tu peux te retrouver un jour avec des
commentaires faux, ce qui est pire que pas de commentaire du tout et
pourtant très fréquent...

# calcul la somme de a et b
c = a - b


Exemple typique de mauvais commentaire... Bien sûr parce qu'il est
faux mais surtout parce qu'il tente de décrire ce que fait le code
alors qu'un bon commentaire doit expliquer pourquoi le code fait ce
qu'il fait et non pas comment il le fait...

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>

1 2 3 4