程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Meilleure bibliothèque en ligne de commande Python: cliquez

編輯:Python

Un.、Préface
Aujourd'hui. click[2] C'est une façon familière de jouer à la ligne de commande..Les programmes en ligne de commande sont essentiellement des paramètres de définition et de traitement,La logique de traitement des paramètres doit être associée aux paramètres définis.Puis - je utiliser des fonctions et des décorateurs pour associer la logique des paramètres à la définition des paramètres??Et click C'est exactement comme ça que ça marche..

Cette série d'articles est utilisée par défaut Python 3 Interprétation en tant qu'interprète.
Si vous utilisez encore Python 2,Notez les différences de syntaxe et d'utilisation de la Bibliothèque entre les deux~

2.、Introduction
click C'est un code aussi petit que possible、Pour créer un programme en ligne de commande élégant de manière combinatoire Python Sac.Il est très configurable,Peut également être ouvert et prêt à l'emploi.

Il est conçu pour rendre le processus d'écriture des outils en ligne de commande rapide et amusant,Peut également empêcher que les attentes ne soient pas satisfaites CLI API Frustration générée.Il a trois caractéristiques:

  • N'importe quelle commande imbriquée
  • Générer automatiquement de l'aide
  • Prise en charge des sous - commandes de chargement différé à l'exécution

Trois、Démarrage rapide
3.1 Logique d'entreprise
Définir d'abord la logique opérationnelle,C'est incroyable.?

Que ce soit argparse Toujours docopt,La logique d'entreprise est la dernière étape,Mais... click C'est la première étape..Réfléchis. click C'est une façon de penser plus humaine.?Quel que soit le cadre en ligne de commande utilisé,Notre souci ultime est de mettre en œuvre la logique d'entreprise,Autres provinces.

Prenons l'exemple officiel ,Pour présenter click Utilisation et philosophie de . Supposons que l'entrée du programme en ligne de commande soit name Et count, La fonction est d'imprimer le nom du nombre spécifié de fois .

Alors, dans hello.py Moyenne,Il est facile d'écrire le code suivant:

def hello(count, name):
"""Simple program that greets NAME for a total of COUNT times."""
for x in range(count):
click.echo('Hello %s!' % name)

La logique de ce code est simple,C'est la boucle count Une fois,Utiliser click.echo Imprimer name.Parmi eux,click.echo Et print Les effets sont similaires,Mais plus puissant, Je peux gérer Unicode Et Le cas des données binaires .

3.2 Définir les paramètres
C'est évident.,Nous devons cibler count Et name Pour définir les informations de paramètre auxquelles elles correspondent .

  • count Correspond à l'option en ligne de commande --count,Le type est numérique, Nous voulons que lorsque les paramètres ne sont pas fournis ,Sa valeur par défaut est 1

  • name Correspond à l'option en ligne de commande --name,Le type est une chaîne, Nous voulons que lorsque les paramètres ne sont pas fournis , Peut donner un indice
    Utiliser click, Ça pourrait être écrit comme ça :

    from click import click

    @click.command() @click.option('--count', default=1, help='Number of greetings.') @click.option('--name', prompt='Your name', help='The person to greet.') def hello(count, name): ...

Dans l'exemple ci - dessus:

  • Comment utiliser les décorateurs, C'est - à - dire que les paramètres sont définis , Et le lier à la logique de traitement , C'est vraiment élégant .Et argparse、docopt Comparer, Il manque une étape dans le processus de liaison
  • Utiliser click.command Représentation hello C'est le traitement des commandes
  • Utiliser click.option Pour définir les options de paramètres
  • Pour --count Dis,Utiliser default Pour spécifier les valeurs par défaut. Et comme la valeur par défaut est un nombre , Ce qui suggère --count Le type d'option est numérique
  • Pour --name Dis,Utiliser prompt Pour spécifier une invite lorsque cette option n'est pas saisie
  • Utiliser help Pour spécifier les informations d'aide

Quelle que soit la façon dont la décoration 、 Ou des comportements par défaut ,click C'est ce que dit son introduction , Laissez les gens écrire le moins de code possible , Rendre tout le processus rapide et amusant .

3.3 Code Comb
Utiliser click C'est très simple., Nous résumons les codes ci - dessus sous , Pour avoir une idée plus claire :

# hello.py
import click
@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--name', prompt='Your name',
help='The person to greet.')
def hello(count, name):
"""Simple program that greets NAME for a total of COUNT times."""
for x in range(count):
click.echo('Hello %s!' % name)
if __name__ == '__main__':
hello()

Si nous spécifions le nombre et le nom :

$ python3 hello.py --count 2 --name Eric
Hello Eric!
Hello Eric!

Si on ne précise rien , On vous demandera un nom , Et la sortie par défaut une fois :

$ python3 hello.py
Your name: Eric
Hello Eric!

On peut encore passer par --help Paramètre afficher les informations d'aide générées automatiquement :

Usage: hello.py [OPTIONS]
Simple program that greets NAME for a total of COUNT times.
Options:
--count INTEGER Number of greetings.
--name TEXT The person to greet.
--help Show this message and exit.

Quatre、Résumé
click L'idée est très simple,Définir le gestionnaire, Les paramètres sont définis par son décorateur . La beauté de l'utilisation des décorateurs est de combiner les deux étapes de la définition et de la liaison en une seule étape , Pour rendre le processus aussi lisse que la soie .

click Sauf pour Pythonic D'une manière qui rend l'implémentation du programme en ligne de commande plus élégante et conviviale ,Et offre plus que argparse Et docopt Tout doit être puissant .

C'est tout ce que j'ai partagé,Pour en savoir plus python Knowledge Welcome to the public number:Python Cercle d'apprentissage de la programmation ,Envoyer “J” Disponible gratuitement,Partage quotidien des marchandises sèches


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved