« Python argparse » : différence entre les versions

De knowledge
Aller à la navigation Aller à la recherche
(Page créée avec « Le module <code>argparse</code> pour Python permet de traiter les arguments et les options passés en ligne de commande. == Exemple simple == On souhaite avoir un programme qui traite un fichier texte et, soit afficher le résultat sur la sortie standard soit dans un fichier donné en option.<syntaxhighlight lang="python3"> import argparse parser = argparse.ArgumentParser(description='Translate file') parser.add_argument('filename', help='xln (text) file')... »)
 
mAucun résumé des modifications
 
Ligne 17 : Ligne 17 :
     args.outfile.close()
     args.outfile.close()
</syntaxhighlight>Si on appelle le programme sans aucun paramètre:<syntaxhighlight lang="text">
</syntaxhighlight>Si on appelle le programme sans aucun paramètre:<syntaxhighlight lang="text">
python3 myprog.py
usage: myprog.py [-h] [-w OUTFILE] filename
usage: myprog.py [-h] [-w OUTFILE] filename
nc-drill.py: error: the following arguments are required: filename
myprog.py: error: the following arguments are required: filename
</syntaxhighlight>OK je dois fournir un fichier:
</syntaxhighlight>OK je dois fournir un fichier:<syntaxhighlight lang="text">
python3 myprog.py text.txt
text.txt
 
</syntaxhighlight>C'est une syntaxe valable!<syntaxhighlight lang="text">
python3 myprog.py -w out.txt text.txt
text.txt
</syntaxhighlight>Et si on regarde on a un fichier out.txt qui contient "Hello world!\n"

Version actuelle datée du 11 février 2024 à 15:06

Le module argparse pour Python permet de traiter les arguments et les options passés en ligne de commande.

Exemple simple

On souhaite avoir un programme qui traite un fichier texte et, soit afficher le résultat sur la sortie standard soit dans un fichier donné en option.

import argparse

parser = argparse.ArgumentParser(description='Translate file')
parser.add_argument('filename', help='xln (text) file')
parser.add_argument('-w', type=argparse.FileType('w', encoding='latin-1'), dest='outfile', help='the file to write')
args = parser.parse_args()

print ("Read form file :",end='')
print (args.filename)

if (args.outfile):
    args.outfile.write("Hello world!")
    args.outfile.close()

Si on appelle le programme sans aucun paramètre:

python3 myprog.py
usage: myprog.py [-h] [-w OUTFILE] filename
myprog.py: error: the following arguments are required: filename

OK je dois fournir un fichier:

python3 myprog.py text.txt
text.txt

C'est une syntaxe valable!

python3 myprog.py -w out.txt text.txt
text.txt

Et si on regarde on a un fichier out.txt qui contient "Hello world!\n"