Comment recevoir des arguments de ligne de commande en Python

Qu'est-ce qu'un argument de ligne de commande?

Un argument de ligne de commande est une chaîne de caractères spécifiée lors du démarrage d'un programme à partir de l'écran de saisie de commande (ligne de commande) d'un ordinateur. En outre, la valeur de la variable etc. qui a reçu cela du côté du programme.

http://e-words.jp/w/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E5%BC%95%E6%95%B0.html

Les arguments de ligne de commande sont les arguments de la fonction principale. Vous pouvez donner des valeurs aux arguments de ligne de commande à partir de la ligne de commande lorsque vous exécutez.

http://www.ritsumei.ac.jp/~mmr14135/johoWeb/cmnds.html

>>> ls -a
↑ ici

Recevoir des arguments de ligne de commande en Python

Il existe trois façons principales de recevoir des arguments de ligne de commande en Python.

  1. Utilisez sys.argv
  2. Utilisez ʻargparse`
  3. Utilisez click

est.

sys.argv

C'est la méthode la plus reconnue (je pense). Obtenez-le en utilisant sys, la bibliothèque Python standard.

args.py


import sys


def main() -> None:
    args = sys.argv
    print(args)


if __name__=='__main__':
    main()

Courir

>>> python args.py aaa 123 hoge
['args.py', 'aaa', '123', 'hoge']
mérite デmérite
Facile à écrire Je ne sais pas quel type viendra
Bibliothèque standard Python Aucune aide

argparse

Une bibliothèque Python standard dédiée aux arguments de ligne de commande. Vous pouvez spécifier la fonction et le type d'aide. Il y a une habitude de manipulation.

args2.py


import argparse


def main() -> None:
    parser = argparse.ArgumentParser(description='La description')

    parser.add_argument('description', help='Description de l'argument')  #S'il n'est pas spécifié au moment de l'exécution, une erreur se produira.
    parser.add_argument('hoge', help='hogehoge')  #L'ordre est fixe.
    parser.add_argument('--foo', help='option')  #Trait d'union 1~Si vous en attachez deux, vous n'avez pas à le spécifier lors de l'exécution.

    args = parser.parse_args()

    print(args.description)
    print(args.hoge)
    print(args.foo)


if __name__ == "__main__":
    main()

Courir

>>> python args2.py -h
usage: aaa.py [-h] [--foo FOO] description hoge

La description

positional arguments:
description Description de l'argument
  hoge         hogehoge

optional arguments:
  -h, --help   show this help message and exit
  --foo FOO    option

>>> python args2.py aaa bbb
aaa
bbb
None

>>> python args2.py aaa bbb --foo 123
aaa
bbb
123
mérite デmérite
Riche en fonctionnalités complexité
Il y a de l'aide
Bibliothèque standard Python

click

Analyseur de ligne de commande Python. En d'autres termes, un module d'analyse en ligne de commande. Comme il ne s'agit pas d'une bibliothèque Python standard, elle doit être installée séparément, mais les deux ci-dessus sont omis pour faciliter la compréhension et la facilité d'utilisation. Par conséquent, ce n'est pas grave si vous vous en souvenez Au fait, click, Flask et jinja sont même projet.

#Installation
pip install click

args3.py


import click


@click.command()
@click.option('--args', prompt=True, help='La description')
@click.option('--hoge', prompt=True, is_flag=True, help='hogehoge')
def main(args: str, hoge: bool) -> None:
    if hoge:
        print(args)


if __name__ == "__main__":
    main()

Courir

>>> python args3.py --args foo --hoge
foo

>>> python args3.py
Args: aaaaa
Hoge [y/N]: y
aaaaa
mérite デmérite
Riche en fonctionnalités Pas une bibliothèque standard Python
Facile à utiliser
Peut être affiché à l'invite
Vous pouvez également afficher la barre de progression
Vous pouvez masquer votre entrée de mot de passe
Plusieurs entrées sont possibles

Matériel de référence

Comment gérer les arguments de ligne de commande en Python (sys.argv, argparse) [Comment passer des arguments de ligne de commande en Python](https://intellectual-curiosity.tokyo/2018/12/14/python%E3%81%A7%E3%82%B3%E3%83%9E%E3%83 % B3% E3% 83% 89% E3% 83% A9% E3% 82% A4% E3% 83% B3% E5% BC% 95% E6% 95% B0% E3% 82% 92% E6% B8% A1 % E3% 81% 99% E6% 96% B9% E6% B3% 95 /) Un bref résumé de la façon d'utiliser ArgumentParser Python: cliquer sur l'analyseur de ligne de commande était trop pratique

Recommended Posts

Comment recevoir des arguments de ligne de commande en Python
Comment spécifier des arguments de ligne de commande lors du débogage avec PyCharm
[Python / Tkinter] Comment passer des arguments à la commande
Décomposer les arguments de commande en une seule ligne en Python
Comment obtenir une chaîne à partir d'un argument de ligne de commande en python
[Python] Comment tester l'analyseur de ligne de commande cliquez sur
[Introduction à Udemy Python3 + Application] 67. Arguments de ligne de commande
Recevoir des arguments d'exécution dans Python 2.7
Comment développer en Python
[Pour les débutants] Comment utiliser la commande say avec python!
Comment exécuter une commande à l'aide d'un sous-processus en Python
[Python] Comment faire PCA avec Python
Comment collecter des images en Python
Comment utiliser SQLite en Python
Dans la commande python, python pointe vers python3.8
Comment utiliser Mysql avec python
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Comment gérer les arguments lors de l'implémentation d'un script Python en tant qu'outil de ligne de commande
Comment gérer le japonais avec Python
Comment passer des arguments lors de l'appel d'un script python depuis Blender sur la ligne de commande
[Introduction à Python] Comment utiliser la classe en Python?
Comment définir dynamiquement des variables en Python
Comment faire R chartr () en Python
[Itertools.permutations] Comment créer une séquence en Python
[python] Comment utiliser __command__, explication des fonctions
Comment utiliser BigQuery en Python
Comment obtenir stacktrace en python
Comment afficher la table quatre-vingt-dix-neuf en python
Comment extraire une zone de polygone en Python
Comment vérifier la version d'opencv avec python
Comment changer de version de Python dans cloud9
Comment régler le contraste de l'image en Python
Comment utiliser __slots__ dans la classe Python
Comment remplir dynamiquement des zéros avec Python
Comment utiliser les expressions régulières en Python
Comment afficher Hello World en python
Comment utiliser is et == en Python
Comment écrire Ruby to_s en Python
Comment passer des arguments à un script Python dans SPSS Modeler Batch
python Remarque: déterminez si l'argument de ligne de commande est dans la liste
Modèle pour créer des applications de ligne de commande en Python
Comment utiliser la bibliothèque C en Python
Enregistrer automatiquement les arguments de fonction dans argparse en Python
[REAPER] Comment jouer à Reascript avec Python
Comment effacer un taple dans une liste (Python)
Comment installer Python
Comment générer une séquence en Python et C ++
Comment incorporer des variables dans des chaînes python
Comment masquer l'invite de commande lors de l'exécution de python dans Visual Studio 2015
Résumé de la façon d'importer des fichiers dans Python 3
Comprenons comment passer des arguments (édition Python)
Comment simplifier l'ajustement polymorphe restreint en python
Comment utiliser la bibliothèque d'images Python dans la série python3
Comment implémenter la mémoire partagée en Python (mmap.mmap)
Comment créer un fichier JSON en Python
Comment installer python
Résumé de l'utilisation de MNIST avec Python