Ripetizione di gruppi di argomenti con argparse

2

Diciamo che voglio inserire informazioni su più utenti dalla riga di comando E che ogni utente ha più dati associati ad esso.

È possibile (sintatticamente consentito) utilizzare argparse per analizzare qualcosa come myprpgrm.py --user john --email [email protected] --valid Y --user jane --email [email protected] --valid N ?

Come puoi vedere, ogni utente dovrebbe avere 3 parametri associati: un nome, un'email e un flag valido.

Può argparse assicurarti che se viene visualizzato un parametro utente, deve essere accompagnato da un parametro email e un parametro di validità?

E può darmi le informazioni raggruppate quando aggiungo più utenti, ciascuno con 3 parametri?

[Aggiornamento] Questo potrebbe essere ottenuto in qualche modo con i gruppi di argomenti ?

    
posta Mawg 12.01.2015 - 14:08
fonte

1 risposta

2

Non userei gli argomenti della riga di comando per questo. Gli argomenti della riga di comando sono pensati per una configurazione semplice e transitoria. Quello che hai qui sono dati strutturati. Vuoi metterlo in un formato più permanente, come JSON:

[
    {
        'user': 'john',
        'email': '[email protected]',
        'valid': true
    },
    {
        'user': 'jane',
        'email': '[email protected]',
        'valid': false
    }
]

Python ha convenientemente un modulo per analizzare JSON:

import json

with open('path/to/data.json') as file:
    data = json.load(file)

Argparse ha strutture speciali per il passaggio di file sulla riga di comando; probabilmente non dovrai chiamare open() da solo.

    
risposta data 13.01.2015 - 03:59
fonte

Leggi altre domande sui tag