Argumentanalyse in Python

Blog

Argumentanalyse in Python

Argumentanalyse in Python

Wenn Sie ein Data Science- oder Machine Learning-Projekt planen, ist es nicht ungewöhnlich, mit der Entwicklung in einem Jupyter Notebook zu beginnen. Es bietet Interaktivität für Ihre Computertools, lässt Sie Ihre Module schnell ausführen und so weiter. Es gibt viele Hinweise darauf, Jupyter Notebooks als primäre Waffe der Wahl zu wählen, insbesondere für Data Science- oder Machine Learning-Projekte. Dieses Tutorial zielt jedoch nicht darauf ab, diesen Teil zu beleuchten.

Stellen Sie sich vor, dass Sie ein Python-Skript als Batch-Job ausführen müssen, um die Daten in Ihrem Data Science-Projekt aufzunehmen. Oder Sie müssen ein Python-Skript ausführen, um ein Modell für maschinelles Lernen auf einem Remoteserver bereitzustellen. In solchen Fällen einfach |_+_| . ausführen möglicherweise nicht ausreichend. Möglicherweise müssen Sie mehr bestehen Optionen oder Argumente zusammen mit |_+_|. Möglicherweise sind Sie bereits mit der Verwendung zusätzlicher Argumente beim Ausführen von Befehlen (wie |_+_|, |_+_| usw.) auf einem Linux-Terminal vertraut.

In diesem Tutorial erfahren Sie, wie Sie zusätzliche Argumente analysieren, Optionen von der Befehlszeile, die zusammen mit einem Python-Skript übergeben werden. Hier ist die Zusammenfassung der Inhalte des heutigen Tutorials:

  • Eine grundlegende Einführung in das Parsing von Argumenten

  • Argumentanalyse in Python
  • Verwenden von |_+_|

  • Verwenden von |_+_|
  • Verwenden von |_+_|

Notiz dass dieses Tutorial grundlegende Vertrautheit mit Python voraussetzt.

Was ist Argumentanalyse?

Wenn Sie ein Linux-Benutzer sind, wissen Sie dies wahrscheinlich bereits. Um eine Zusammenfassung der in einem bestimmten Verzeichnis vorhandenen Dateien und Ordner zu erhalten, verwenden Sie den Befehl |_+_| wird oft verwendet. Eine typische Ausgabe der Ausführung von |_+_| Befehl sieht aus wie -

Sie können jedoch viele liefern Optionen zum |_+_| Befehl |_+_|, zum Beispiel. Schauen wir uns an, wie diese Ausgabe aussieht -

So vergrößern Sie Lesezeichen in Chrome

Durch das Passieren der |_+_| Möglichkeit , Sie haben mehr Informationen. Nun, es gibt einen kleinen Unterschied zwischen an Möglichkeit und ein Streit in diesem Kontext. Um eine Datei oder einen Ordner aus Ihrem aktuellen Arbeitsverzeichnis zu entfernen, |_+_| Befehl wird oft verwendet. Angenommen, Sie haben eine Textdatei mit dem Namen |_+_| und du bist gerannt |_+_| um die Textdatei zu entfernen. In diesem Fall |_+_| ist der Streit die Sie sich für die |_+_| . beworben haben Befehl. Wenn Sie keine bestehen Streit zum |_+_| Befehl erhalten Sie eine Fehlermeldung wie diese -

So importieren Sie ein Maven-Projekt in Intellij

Also, was ist der Unterschied zwischen an Möglichkeit und ein Streit ? Es ist jetzt ziemlich offensichtlich. Optionen sind Optional übergeben, während Argumente (oft) notwendig bestehen. Es ist nicht unbedingt erforderlich, etwas an die |_+_| . weiterzugeben Befehl, um eine Ausgabe zu erzeugen.

Wenn du jetzt |_+_| . drückst oder |_+_|, das Betriebssystem analysiert es auf eine bestimmte Weise unter der Haube. Dieser Mechanismus wird im Allgemeinen von den Entwicklern des Betriebssystems spezifiziert und ist bekannt als Parsing .

Wenn Sie mehr über Linux-Befehle und die verschiedenen von ihnen unterstützten Optionen und Argumente erfahren möchten, empfehlen wir Ihnen dringend, das Buch Unix-Konzepte und -Anwendungen zu lesen.

Das war also eine grundlegende Einführung in das Parsing von Argumenten. Fast alle Programmiersprachen unterstützen das Parsen von Argumenten. Python ist da keine Ausnahme. Es gibt drei sehr verbreitete Möglichkeiten, wie Sie in Python Argumente analysieren können:

  • sys.argv

  • gekrönt
  • argparse

Sie werden nun jede der oben genannten Optionen nacheinander verwenden und sehen, wie Sie sie zum Analysieren von Argumenten (und Optionen) verwenden. Gehen wir chronologisch vor.

Argumentanalyse mit sys.argv

Fangen wir einfach an. In diesem ersten Beispiel erstellen Sie eine Python-Datei namens |_+_|. Ihr Programm akzeptiert eine beliebige Anzahl von Argumenten, die von der Befehlszeile (oder dem Terminal) übergeben werden, während es ausgeführt wird. Das Programm gibt die übergebenen Argumente und die Gesamtzahl der Argumente aus.

Wenn Sie beispielsweise |_+_| ausführen, würde das Programm Folgendes ergeben -

python your_script.py

Beachten Sie, dass das erste Argument immer das ist Name der Python-Datei . Aber der Code kann geändert werden, um ihn nicht einzuschließen.

Kommen wir nun zum Code -

python your_script.py

Sie haben zuerst das Python-Modul |_+_| importiert, das mit einer Standardinstallation von Python geliefert wird. Sie haben dann die |_+_| . eingestellt Submodul, das die Liste der an ein Python-Skript übergebenen Argumente zurückgibt, wobei |_+_| enthält den Namen des Python-Skripts. Wenn du |_+_| . läufst In einer Codezelle wie der folgenden erhalten Sie die Liste der Konfigurationsdateien, die dafür verantwortlich sind, dass der IPython-Kernel ordnungsgemäß funktioniert. Es ist besser, sich nicht mit ihnen anzulegen.

ps


ls

Sehen wir uns nun an, wie Sie |_+_| . verwenden Modul zum Parsen von Argumenten (und Optionen).

Argumentanalyse mit getopt

Im Vergleich zu |_+_| ist das |_+_| Modul bietet viel mehr Flexibilität. Lassen Sie uns zunächst ein Beispielszenario entwerfen und den Code entsprechend schreiben.

Angenommen, Sie haben ein Python-Skript veröffentlicht, das Sie noch nicht dokumentiert haben. Sie möchten den Benutzern jedoch aussagekräftiges Feedback geben, wenn sie dieses Skript auf eine Weise ausführen, die nicht beabsichtigt ist. Ihr Python-Skript erledigt die einfache Aufgabe des Addierens von zwei Zahlen und liefert eine Ausgabe. Die einzige Einschränkung besteht darin, dass der Benutzer die Eingaben in Form von Befehlszeilenargumenten zusammen mit dem Python-Skript übergeben muss.

Etwas praktischer gesprochen, sollte das Skript idealerweise so ausgeführt werden wie -

Klasse 'mongodb\driver\manager' nicht gefunden

sys.argv

Die Ausgabe sollte 11 sein. Hier ist |_+_| und |_+_| sind die Optionen und 3, 8 sind die Argumente, die Sie dem Skript zur Verfügung stellen. Die Optionen verbessern nicht nur die Lesbarkeit, sondern helfen auch, den Auswertungsfluss zu bestimmen (überlegen Sie, ob Sie dividieren statt addieren). Schauen wir uns zuerst den Code dafür an.

getopt

Das Wichtigste zuerst, |_+_| wird wie die beiden anderen oben besprochenen Module mit der Standardinstallation von Python geliefert. Sie beginnen mit der Instanziierung der |_+_| Objekt. Und der Rest ist so einfacher zu schreiben. Nehmen wir zum Beispiel die folgende Codezeile:

argparse

Hier haben Sie das Argument hinzugefügt, von dem Sie erwarten, dass es mit dem Python-Skript geliefert wird, wenn es ausgeführt wird. Sie haben die Buchstabenversion des Arguments zusammen mit der erweiterten Version angegeben. Durch Angabe von |_+_| Sie bitten den Benutzer ausdrücklich, dieses bestimmte Argument anzugeben. Schließlich haben Sie eine aussagekräftige Beschreibung des Arguments angehängt, die dem Benutzer angezeigt wird, falls er das Skript nicht richtig ausführt.

Der Argumentdefinitionsteil ist auch für das zweite Argument gleich. Sie greifen auf die angegebenen Argumente zu, indem Sie ihre jeweiligen Indizes angeben.

Das obige Code-Snippet zeigt deutlich, wie einfach und flexibel es ist, Kommandozeilen-Argument-Parsing-Aufgaben mit |_+_| zu definieren. So können Sie mit dem obigen Python-Skript spielen:

Beachten Sie, wie viel einfacher der Prozess mit argparse wurde.

Was kommt als nächstes?

Vielen Dank, dass Sie das heutige Tutorial bis zum Ende gelesen haben. Jetzt sind Sie mit den nativen Python-Modulen ausgestattet, die Argumente analysieren können, die von der Befehlszeile zusammen mit Ihrem Python-Skript bereitgestellt werden. Als Übung können Sie Ihre Machine-Learning- und Data-Science-Projekte entsprechend anpassen, um das Parsing von Argumenten zu erleichtern und sie in nützliche Skript-Dienstprogramme umzuwandeln. Nicht nur maschinelles Lernen oder Data Science, sondern überall dort, wo Sie es für relevant genug halten.

Danke fürs Lesen!

Spring Boot Microservice Architekturdiagramm

Ursprünglich veröffentlicht am https://www.datacamp.com

#Python