objectif
Valider qu’un chemin existe ou non directement via argparse.
code minimal
import argparse
from pathlib import Path
def existing_path(p: str) -> Path:
path = Path(p)
if not path.exists():
raise argparse.ArgumentTypeError("chemin inexistant")
return path
parser = argparse.ArgumentParser()
parser.add_argument("--input", type=existing_path, required=True)
args = parser.parse_args(["--input", "."]) # répertoire courant
print(isinstance(args.input, Path)) # attendu: True
utilisation
python app.py --input ./data
variante(s) utile(s)
import argparse
from pathlib import Path
def non_existing(p: str) -> Path:
path = Path(p)
if path.exists(): raise argparse.ArgumentTypeError("doit ne pas exister")
return path
print(callable(non_existing))
notes
- Retournez un Path pour éviter de re-parser ailleurs dans le code.
- Personnalisez les messages d’erreur via ArgumentTypeError.