Feed Ich habe ein Skript mit dem Namen GetStats.py
.Erhalten Sie die Eingabe von Benutzer an der Befehlszeile und verwenden Sie diese Eingabe, um Variablen in Python-Skript
Auf einem hohen Niveau, das GetStats.py
Skript führt Folgendes aus:
1) stellt eine Verbindung zu einer externen Datenbank 2) ruft einige Daten aus dieser Datenbank 3) schreibt die in Schritt 2, um eine abgerufenen Daten csv-Datei
Wichtig ist, dass das Skript GetStats.py
eine Konfigurationsdatei (.cfg) referenziert, die (neben vielen anderen Details) die IP-Adresse und Serverdetails der bestimmten Datenbank enthält, mit der eine Verbindung hergestellt werden soll.
Das GetStats.py
Skript setzt voraus, dass der Benutzer die folgenden Parameter in der Befehlszeile übergeben:
a) die Anzahl der Tage von Daten abzurufen (dh der Blick Periode zurück) b) die Granularität der Daten (was entweder stündlich oder täglich ist) c) ob ein begrenzter Satz von Daten (der ungefähr 30 Minuten dauert) oder der vollständige Satz von Daten (der ungefähr 1 Stunde und 15 Minuten dauert)
I habe auch eine Batch-Datei, mit der ich alles ausführen kann. Die Batch-Datei sieht wie folgt aus:
GetStats.py Client_A.cfg 30 -d -full
GetStats.py Client_B.cfg 30 -d -full
GetStats.py Client_C.cfg 30 -d -full
GetStats.py Client_D.cfg 30 -d -full
GetStats.py Client_E.cfg 30 -d -full
... and so on up to Client_M
Wie wir aus der Batch-Datei oben sehen können, wird das GetStats.py Skript aufgerufen und es läuft gegen Client_A durch Client_E für einen Zeitraum von 30 Tagen, mit täglicher Granularität und kehren der vollständige Satz von Daten.
Das Problem ist, dass, wenn ich einen dieser Parameter ändern möchte (z. B. die Anzahl der Tage in der Look-Back-Periode, die Daten Granularität und/oder die Menge der Daten zurückgeben), muss ich den Batch bearbeiten Datei direkt, und dieser Vorgang kann einige Minuten dauern.
Ich möchte den Prozess optimieren, so dass der Benutzer die folgenden nur aufgefordert wird, sobald in der Befehlszeile, wenn die Batch-Datei ausgeführt wird:
„Bitte geben Sie die Anzahl der Tage zurückblicken : "
‚Bitte geben Sie die Granularität der Daten:‘
‚Bitte geben Sie den Datensatz zurück:‘
ich einige Gedanken zu gegeben haben, wie diese zu übernehmen drei Parameter direkt in das GetStats.py-Skript.
Aber ich denke, ich auf ein Problem stoßen wird, da die Batch-Datei wird die GetStats.py Skript ausführen und dann den Benutzer für die 3 Parameter prompt über jedes Mal das GetStats.py Skript aufgerufen wird (die derzeit 13 mal).
Ich möchte nicht, dass der Benutzer "30", "-d" und "-full" insgesamt 13 Mal eingeben muss. Ich möchte, dass der Benutzer "30", "-d" und "-full" nur einmal eingibt.
Hat jemand irgendwelche Ideen, wie ich den Benutzer für die oben genannten 3 Parameter nur einmal fragen kann, nachdem die Batch-Datei ausgeführt wird?
Danke!
Warum tun Sie müssen das in Python tun? Es handelt sich um einen neuen Prozess für jede Zeile in der Stapeldatei. Daher ist es nicht sinnvoll, den Status über diese hinweg zu teilen. Nehmen Sie die Eingabe in der Batch-Datei. Oder, wenn Sie es nur verwenden, verwenden Sie z. 'awk', um schnell jede Zeile in der Batch-Datei zu bearbeiten. – jonrsharpe
Nein, ich benutze es nicht nur. Ich hätte lieber den Benutzer aufgefordert, die 3 genannten Parameter einzugeben. Ich verstehe nicht, was du über "geteilten Staat" sagst (ich bin relativ neu in Python und Programmierung im Allgemeinen). – equanimity