Facile à créer une application console Python avec Click

Si vous voulez créer un programme Python qui peut être exécuté à partir de la ligne de commande, je pense qu'il est courant d'utiliser ʻargparse ou ʻoptparse pour traiter les arguments de la ligne de commande.

Utiliser la bibliothèque Click est pratique car vous pouvez facilement créer une application console simplement en enveloppant n'importe quelle fonction avec un décorateur.

Essayons une implémentation simple pour obtenir l'URL.

http_fetcher.py


import click
import requests

@click.command()
@click.argument('url')
def fetch(url):
    click.echo(requests.get(url).text.encode('utf-8'))

if __name__ == '__main__':
    fetch()
% python http_fetcher.py http://www.qiita.com/
<!DOCTYPE html>...

Si vous spécifiez un argument avec * -o *, il sera écrit dans le fichier.

http_fetcher2.py


import click
import requests
import sys

@click.command()
@click.argument('url')
@click.option('-o', '--out-file', type=click.File('w'))
def fetch(url, out_file):
    if not out_file:
        out_file = sys.stdout
    click.echo(requests.get(url).text.encode('utf-8'), file=out_file)

if __name__ == '__main__':
    fetch()
% python http_fetcher2.py -o index.html http://qiita.com
% cat index.html
<!DOCTYPE html>...

C'est pratique car Click ouvre automatiquement le fichier et le renvoie en tant qu'objet fichier.

Il existe de nombreuses autres fonctionnalités intéressantes telles que le regroupement de commandes et l'affichage de la barre de progression. Le document est ici.

Recommended Posts

Facile à créer une application console Python avec Click
Vous pouvez facilement créer une interface graphique même avec Python
Créer un répertoire avec python
Pourquoi ne pas créer facilement une table élégante avec Python?
Implémentez facilement des sous-commandes avec python click
Créez un environnement virtuel avec Python!
Créer un décorateur de fonction Python avec Class
[Python] Créez un environnement virtuel avec Anaconda
Créons un groupe gratuit avec Python
[Python] Une application web rapide avec Bottle!
Créer un compteur de fréquence de mots avec Python 3.4
Exécutez une application Web Python avec Docker
Créer un cadre avec un arrière-plan transparent avec tkinter [Python]
J'ai créé une application graphique avec Python + PyQt5
Créer un module Python
Créer un environnement virtuel avec conda avec Python
[Note] Créez une classe de fuseau horaire sur une ligne avec python
Créer un environnement de construction python3 avec Sublime Text3
Créer une barre de couleurs avec Python + Qt (PySide)
Étapes pour créer un bot Twitter avec Python
Faites facilement un bip avec python
Créer un arbre de décision à partir de 0 avec Python (1. Présentation)
Créer un widget avec une couleur spécifiée avec Python + Qt (PySide)
Créez une application Hello World avec un seul fichier avec django
Créer un fichier au format Photoshop (.psd) avec python
[Python] Générer ValueObject avec un constructeur complet à l'aide de classes de données
Créez un environnement de développement python avec vagrant + ansible + fabric
Lancer une application Web Python sur Nginx + Gunicorn avec Docker
Créer un environnement de développement d'applications d'apprentissage automatique avec Python
Créer une couche pour AWS Lambda Python dans Docker
[python] Créez un tableau de dates avec des incréments arbitraires avec np.arange
Un mémo sur la création d'une application Django (Python) avec Docker
[Python] Comment créer un histogramme bidimensionnel avec Matplotlib
[Python] Créez un fichier de distribution pour le programme Tkinter avec cx_Freeze
Créez un faux serveur Minecraft en Python avec Quarry
Créer un fichier CAO 2D ".dxf" avec python [ezdxf]
Créer un plugin Wox (Python)
Facilement sans serveur avec Python en utilisant Calice
Créer une fonction en Python
Créer un dictionnaire en Python
Créer une page d'accueil avec django
Créer un tableau numpy python
Faites une loterie avec Python
Application Web avec Python + Flask ② ③
Créez facilement un profil avec un décorateur
Application Web avec Python + Flask ④
Créez une application Web qui reconnaît les nombres avec un réseau neuronal
[Python] Créez un écran de spécification de chemin de fichier et de dossier avec tkinter
Comment convertir un tableau en dictionnaire avec Python [Application]
Créez un bot Mastodon avec une fonction pour répondre automatiquement avec Python
Créer un compte enfant de connect with Stripe en Python
Probablement le moyen le plus simple de créer un pdf avec Python 3
Créons un diagramme PRML avec Python, Numpy et matplotlib.
J'ai créé une application de livre simple avec python + Flask ~ Introduction ~
Créez un Twitter BOT avec le SDK GoogleAppEngine pour Python
Créez un outil d'analyse vidéo simple avec python wxpython + openCV
Créer une interface graphique aussi facilement que possible avec python [édition tkinter]