Programme, die Argumente annehmen · Abschlussprojekt
Abschlussprojekt: Projekt: Die Katalog-CLI ausführen
Das Katalogprojekt hat nicht mehr nur einen festen Ablauf. Seine öffentliche Grenze ist jetzt der Befehl, den wir am Anfang des Kapitels aufgeschrieben haben:
python catalog.py INPUT_PATH OUTPUT_PATH [--minimum-quantity COUNT]
Verwende ihn in der Bash-Sitzung der Website, um die Projektdatei zu erstellen:
python catalog.py catalog.csv selected.json --minimum-quantity 4
cat selected.json
Der Befehl sollte Folgendes melden:
Wrote 2 items to selected.json.
selected.json sollte BK-101 und PN-330 in dieser Reihenfolge enthalten. Der Artikel mit Menge 0 erreicht den Schwellenwert nicht. JSON-Struktur, Typen, UTF-8-Text, Einrückung und abschließender Zeilenumbruch bleiben beim Vertrag aus Kapitel 7.
Dasselbe Programm außerhalb dieser Bash-Sitzung
Die Python-Schnittstelle funktioniert plattformübergreifend. Nur die Schreibweise der Pfade im Aufruf ändert sich, wenn du plattformspezifische Trennzeichen verwendest.
python catalog.py catalog.csv selected.json --minimum-quantity 4
echo $?
Die zweite Zeile gibt nach dem Lauf den Prozessstatus aus.
python .\catalog.py .\catalog.csv .\selected.json --minimum-quantity 4
$LASTEXITCODE
Die zweite Zeile gibt nach dem Lauf den Prozessstatus aus.
python catalog.py catalog.csv selected.json --minimum-quantity 4
echo $?
Die zweite Zeile gibt nach dem Lauf den Prozessstatus aus.
Den gesamten Vertrag selbst durchgehen
Am Anfang dieses Kapitels hast du in einer Tabelle vier unterschiedliche Ergebnisse versprochen. Hole sie jetzt alle ein und prüfe jedes Mal den Exit-Status:
python catalog.py --help; echo $?
python catalog.py catalog.csv out.json; echo $?
python catalog.py catalog.csv; echo $?
python catalog.py missing.csv out.json; echo $?
Du solltest 0, 0, 2, 1 in dieser Reihenfolge sehen. Probiere auch einige Optionswerte aus: --minimum-quantity 0, dann -1, dann two. Die letzten beiden sollten von argparse abgelehnt werden, bevor dein Konverter irgendetwas öffnet.
Beobachte nicht nur, was der Text sagt, sondern wo er landet. Leite stdout mit > in eine Datei um und prüfe, ob die Fehlermeldungen weiterhin auf dem Bildschirm erscheinen. Genau dafür dienen die beiden Datenströme, und so bestätigst du am schnellsten, dass sie richtig verwendet werden.
Drücke Check my work, wenn selected.json und jede Zeile der Tabelle stimmen.
Wenn dich einer der Statuswerte überrascht, bitte Monty zu erklären, welche Ebene ihn erzeugt hat. Den Unterschied zwischen argparse, das mit 2 endet, und deinem eigenen main, das 1 zurückgibt, solltest du sicher verstehen.
Aufgabe
Führe den aufgebauten Katalogbefehl aus, um mit --minimum-quantity 4 aus catalog.csv die Datei selected.json zu erstellen. Prüfe die Datei und reiche den gespeicherten Arbeitsbereich ein.
Die Prüfung untersucht die dauerhafte Datei und ruft das Programm mit unbekannten argv-Werten auf. Sie untersucht den Shell-Verlauf nicht und leitet ihn auch nicht ab.