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