Prendre argument de la chaîne de Python en ligne de commande

J'ai besoin de prendre un argument facultatif lors de l'exécution de mon script Python:

python3 myprogram.py afile.json

ou

python3 myprogram.py

C'est ce que j'ai essayé:

filename = 0
parser = argparse.ArgumentParser(description='Create Configuration')
parser.add_argument('filename', type=str,
                   help='optional filename')

if filename is not 0:
    json_data = open(filename).read()
else:
    json_data = open('defaultFile.json').read()

J'espérais avoir le nom de fichier stocké dans ma variable appelée "nom de fichier" s'il a été fourni. Évidemment, cela ne fonctionne pas. Des conseils?

OriginalL'auteur Kreuzade | 2012-10-03