Ich versuche, die Ausgabe von mehreren Subprozess Python-Programm in eine gleiche Datei zu schreiben. Das Haupt Python-Programm sieht wie folgt aus:Python in dieselbe Datei schreiben mit mehreren Subprozess in einer for-Schleife
forums = ["f20","e70","x3","e89","series7","m5","f10","series6","z4e85","i3i8","f22","f80","f15","f48","f87"]
for f in forums:
command = "python 01-measurevariation.py "+ f+"-commoncrawl-timestamp.csv-excludeunif"
print command
exit_status = subprocess.call(command, shell=True)
Und das subprocess Python-Programm 01-measurevariation.py hier (zeigt nur im Zusammenhang Codes):
input_file= str(sys.argv[1])
output_file = "tsvariations.csv"
...
with open(input_file) as to_read:
with open(output_file, "wb") as tmp_file:
reader = csv.reader(to_read, delimiter = ",")
writer = csv.writer(tmp_file)
....
writer.writerow (["variance of "+sys.argv[1]+" is "+"%.2f" % numpy.var(difflist)+ " hours"])
writer.writerow (["std of "+sys.argv[1]+" is "+ "%.2f" % numpy.std(difflist) +" hours"])
jedoch die Ausgabedatei „tsvariations.csv "enthält nur 2 Zeilen, was die Ausgabe des letzten Unterprozesses in der for-Schleife im Hauptpython-Programm ist.
Ich möchte die tsvariations.csv enthalten alle Subprozess-Ausgabe, die insgesamt 30 Zeilen haben sollte. (2 Zeilen für jeden der 15 Einträge in der "Foren" -Liste). Wie kann ich das machen? Vielen Dank.
Öffnen Sie die Datei im Append-Modus. – spectras
das funktioniert perfekt für mich! Danke Spectras! – yuhengd