Comments on: La plus belle manière de parser les arguments de script en python http://sametmax.com/la-plus-belle-maniere-de-parser-les-arguments-de-script-en-python/ Du code, du cul Mon, 28 Oct 2019 11:54:55 +0000 hourly 1 https://wordpress.org/?v=4.9.7 By: Sam http://sametmax.com/la-plus-belle-maniere-de-parser-les-arguments-de-script-en-python/#comment-185650 Sun, 19 Feb 2017 16:58:44 +0000 http://sametmax.com/?p=9662#comment-185650 Y a un bon article a faire en effet. J’avais eu la même question quand j’ai débuté en informatique, et j’ai juste oublié que j’avais galéré là dessus.

Pour le standard, je n’en connais pas. Ce sont des infos que j’ai glané à l’usage.

]]>
By: maxime http://sametmax.com/la-plus-belle-maniere-de-parser-les-arguments-de-script-en-python/#comment-185640 Sun, 19 Feb 2017 10:03:55 +0000 http://sametmax.com/?p=9662#comment-185640 Bonjour,

Tout d’abord merci beaucoup pour tous ces articles. Ils sont d’une grande qualité et c’est mon go-to en informatique.

J’ai effectué pas mal de recherche à propos de deux sujets en lien avec cet article et j’avoue ne pas avoir trouvé mon bonheur sur le net. Je profite de ce post pour demander de l’aide à une âme charitable.

Le premier serait la notation utilisée pour décrire l’usage de scripts/commandes/fonctions dans les documents techniques

et également dans les docstrings. Dans l’exemple de Sam, “Naval Fate” contient


"""Naval Fate.

Usage:

naval_fate.py ship new ...

naval_fate.py ship  move   [--speed=]

naval_fate.py ship shoot  

naval_fate.py mine (set|remove)   [--moored | --drifting]

naval_fate.py (-h | --help)

naval_fate.py --version

Options:

-h --help     Show this screen.

--version     Show version.

--speed=  Speed in knots [default: 10].

--moored      Moored (anchored) mine.

--drifting    Drifting mine.

"""

Comment se décortique l’usage des “[, (, {, | ” par exemple? Est ce qu’il y a une convention standard décrite quelque part qui concernerait toute l’informatique en général?

Le deuxième sujet concerne le parsing des arguments en ligne de commande. Le module argparse de python semble dire qu’il suit la norme/le standard GNU/POSIX. les recherches sur le net dirigent sans cesse vers des librairies de parsing d’arguments de la ligne de commande pour des langages particuliers. Existe t il un standard langage agnostic qui décrit le parsing des arguments de la ligne de commande avec un document assez clair qui l’expliquerait? Le document (http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html) semble aller dans ce sens, mais ne comprenant pas le sujet 1, j’ai du mal à décrypter ce document assez technique.

Merci d’avance pour toute aide dans ma quête de connaissances

]]>
By: Ninit http://sametmax.com/la-plus-belle-maniere-de-parser-les-arguments-de-script-en-python/#comment-158377 Sun, 29 Mar 2015 18:01:34 +0000 http://sametmax.com/?p=9662#comment-158377 Je me suis mélangé dans le lien du comment précédent : le lien pointe vers configargparse.

]]>
By: Ninit http://sametmax.com/la-plus-belle-maniere-de-parser-les-arguments-de-script-en-python/#comment-158374 Sun, 29 Mar 2015 17:00:32 +0000 http://sametmax.com/?p=9662#comment-158374 Merci pour cet article qui m’a permis de découvrir et apprécier docopt. Encore une lecture intéressante chez Sam&Max !

Ce petit mot pour vous signaler ConfigArgParse> qui est moins élégant et facile à utiliser mais qui vient avec la gestion automatique des arguments dans un fichier de configuration et dans l’environnement.

]]>
By: Sam http://sametmax.com/la-plus-belle-maniere-de-parser-les-arguments-de-script-en-python/#comment-157622 Thu, 12 Mar 2015 15:50:41 +0000 http://sametmax.com/?p=9662#comment-157622 Clize a toujours sa place IMO.

]]>
By: Rififi http://sametmax.com/la-plus-belle-maniere-de-parser-les-arguments-de-script-en-python/#comment-156542 Sat, 21 Feb 2015 21:56:01 +0000 http://sametmax.com/?p=9662#comment-156542 Vraiment très cool, comme toujours, c’est ce que je cherchais. Par contre (je sais que c’est relou), ce serait cool du coup que vous mettiez à jour les articles comme “Sept petites libs qui changent la vie d’un dev Python”. Les gens peuvent tomber dessus, commencer avec clize, avant de tomber sur ce nouvel article qui parle de docopt. Enfin c’est juste une suggestion…

]]>
By: Natim http://sametmax.com/la-plus-belle-maniere-de-parser-les-arguments-de-script-en-python/#comment-113912 Wed, 13 Aug 2014 08:17:01 +0000 http://sametmax.com/?p=9662#comment-113912 This post save my day. Thanks.

]]>
By: Sam http://sametmax.com/la-plus-belle-maniere-de-parser-les-arguments-de-script-en-python/#comment-40731 Mon, 02 Jun 2014 16:18:40 +0000 http://sametmax.com/?p=9662#comment-40731 Soyons honnête, je préfère me tater la tentacule à bien des choses. Pardonnée, mais le tampon reste, parce que j’aime les tampons.

]]>
By: tampon http://sametmax.com/la-plus-belle-maniere-de-parser-les-arguments-de-script-en-python/#comment-40724 Mon, 02 Jun 2014 15:29:35 +0000 http://sametmax.com/?p=9662#comment-40724 Merci! Cool mon premier tampon! Je ne voulais pas être insultante je m’excuse si c’était mal perçu, ca n’était pas mon intention…je voulais juste rire un peu en faisant un clin d’oeil sur votre dernier avant-dernier article

]]>
By: Sam http://sametmax.com/la-plus-belle-maniere-de-parser-les-arguments-de-script-en-python/#comment-40709 Mon, 02 Jun 2014 14:54:56 +0000 http://sametmax.com/?p=9662#comment-40709 Alors dans l’ordre :

– Tu expliques la moitié de ton problème visiblement puisque avec ce script:

"""Naval Fate.

Usage:
  naval_fate.py ship new ...
  naval_fate.py ship  move   [--speed=]
  naval_fate.py ship shoot  
  naval_fate.py mine (set|remove)   [--moored | --drifting]
  naval_fate.py (-h | --help)
  naval_fate.py --version

Options:
  -h --help     Show this screen.
  --version     Show version.
  --speed=  Speed in knots [default: 10].
  --moored      Moored (anchored) mine.
  --drifting    Drifting mine.

"""
from docopt import docopt

import time

if __name__ == '__main__':
    arguments = docopt(__doc__, version='Naval Fate 2.0')
    print(arguments)
    for x in range(2):
      time.sleep(1)
      print(x)

Et en lançant :

python essai.py ship new test &

Ca se met bien en arrière plan, je viens de le tester.

Pour t’aider il faudrait donc que tu suives ceci.

– Il s’agit d’un problème lié à bash, pas particulièrement à cette lib. Tu viens donc raler au mauvais endroit. Qui plus est en comment plutôt que sur un forum d’aide.

– En prime, tu demandes de l’aide en insultant les gens.

Bref, tu mérite un tampon.

]]>