Wenn Sie Ihr Skript Rückkehr wollen Werte, tun nur return [1,2,3]
aus einer Funktion Code Einwickeln aber dann würden Sie das Skript von einem anderen Skript importieren müssen auch für diese Informationen keinen Gebrauch haben:
Rückgabewerte (aus einer Verpackungs-Funktion)
(wieder, dies würde durch einen separaten Python-Skript ausgeführt werden und importiert werden, um etwas gutes zu tun, selbst):
import ...
def main():
# calculate stuff
return [1,2,3]
Exit-Codes als Indikatoren
(Dies ist im Allgemeinen nur gut, wenn Sie einem Governor anzeigen möchten, was schiefgelaufen ist oder einfach die Anzahl der gezählten Bugs/Zeilen oder w/e. Normalerweise 0 ist ein guter Ausgang und> = 1 ist ein schlechter Ausgang, aber man konnte sie in irgendeiner Weise Sie Daten wollen inter schwafeln aus ihm heraus zu bekommen)
import sys
# calculate and stuff
sys.exit(100)
und Ausgang mit einem bestimmten Exit-Code je nachdem, was Sie wollen das Ihrem Gouverneur erzählen. Ich verwendete Exit-Codes beim Ausführen von Skripts durch eine Planungs- und Überwachungsumgebung, um anzuzeigen, was passiert ist.
Stdout als Relais
Wenn Sie nicht stdout verwenden würde mit der Außenwelt zu kommunizieren (wie Sie beschrieben haben). Aber das ist im Allgemeinen eine schlechte Idee, es sei denn, es ist ein Parser, der Ihr Skript ausführt und alles abfangen kann, worüber Sie berichten.
Wenn Sie Ihr Skript in einer kontrollierten Zeitplanungsumgebung ausführen, sind Exit-Codes der beste Weg.
Dateien als Förderer
Es gibt auch die Möglichkeit, einfach Informationen in eine Datei zu schreiben, und speichern Sie die dort Ergebnis.
# calculate
with open('finish.txt', 'wb') as fh:
fh.write(str(5)+'\n')
und den Wert/Ergebnis von dort abholen.Sie können es sogar im CSV-Format tun, damit andere es einfacher lesen können.
Es ist im Allgemeinen eine schlechte Idee, zu versuchen, den Rückgabewert einer ausführbaren Datei zu verwenden, um alles außer einem Fehlercode oder 0 für Erfolg zurückzugeben. Was machen Sie mit diesem Wert, wenn er zurückgegeben wird? – geoffspear
Weiß nichts über Windows, aber in Linux ist es üblich, dass Programme das Ergebnis auf stdout ausgeben. Es sieht so aus, als ob Ihr Skript normalerweise eine Reihe von Informationen ausgibt, aber vielleicht mit einem anderen Flag (vielleicht c für die Zählung?), Es druckt nur die Gesamtzahl der Dateien, z. myscript.py -c -i input_name1 input_name2 – arghbleargh
@ Woble, es ist ein Skript zum Auffinden von Fehlern in Berichtsdateien. Der Wert ermöglicht es abzuschätzen, wie gut die Berichtsdateien geschrieben sind. –