Ich bin ein paar Daten von Mongo, bereinigen es über Python, und schreibe es in Textdatei, um nach Vertica zu importieren. Vertica kann das Python-geschriebene gzip nicht analysieren (keine Ahnung warum), also versuche ich, die Daten in einen CSV zu schreiben und benutze stattdessen bash, um die Datei zu entpacken.Python Subprozess kann nicht die Ausgabe von csv Writer finden
csv_filename = '/home/deploy/tablecopy/{0}.csv'.format(vertica_table)
with open(csv_filename, 'wb') as csv_file:
csv_writer = csv.writer(csv_file, delimiter=',')
for replacement in mongo_object.find():
replacement_id = clean_value(replacement, "_id")
csv_writer.writerow([replacement_id, booking_id, style, added_ts])
subprocess.call(['gzip', 'file', csv_filename])
Wenn ich diesen Code ausführen, erhalte ich „gzip: file: Keine solche Datei oder das Verzeichnis“, trotz der Tatsache, dass 1) die Datei unmittelbar vorher erstellt wird immer und 2) gibt es bereits eine Kopie der csv im Verzeichnis vor dem Lauf, da dies ein Skript ist, das wiederholt ausgeführt wird.
Diese Punkte lassen mich denken, dass Python die Datei irgendwie bindet und bash kann nicht sehen/darauf zugreifen. Irgendwelche Ideen, wie diese Konvertierung ausgeführt werden kann?
Dank
wenn ich das Gzip-Modul vertica konnte nicht lesen die Daten aus der Datei. Das ist ein separates Problem, das wahrscheinlich seine eigene Frage verdient – quaintm