Wenn Sie ein Python-Programm erstellen möchten, das über die Befehlszeile ausgeführt werden kann, verwenden Sie häufig "argparse" oder "optparse", um die Befehlszeilenargumente zu verarbeiten.
Die Bibliothek Click ist praktisch, da Sie einfach eine Konsolenanwendung erstellen können, indem Sie einfach eine Funktion mit einem Dekorator umschließen.
Versuchen wir eine einfache Implementierung, um die URL zu erhalten.
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>...
Wenn Sie ein Argument mit * -o * angeben, wird es in die Datei geschrieben.
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>...
Dies ist praktisch, da Click die Datei automatisch öffnet und als Dateiobjekt zurückgibt.
Es gibt viele andere nette Funktionen wie Befehlsgruppierung und Fortschrittsbalkenanzeige. Das Dokument ist hier.
Recommended Posts