In Python 2 war es einfach, eine temporäre Datei zu erstellen und darauf zuzugreifen. In Python 3 scheint dies jedoch nicht mehr der Fall zu sein. Ich bin verwirrt, wie ich zu der Datei komme, die ich mit tempfile.NamedTemporaryFile() erstelle, damit ich einen Befehl darauf aufrufen kann.Python NamedTemporaryFile erscheint leer, auch nachdem Daten geschrieben wurden
Zum Beispiel:
temp = tempfile.NamedTemporaryFile()
temp.write(someData)
subprocess.call(['cat', temp.name]) # Doesn't print anything out as if file was empty (would work in python 2)
subprocess.call(['cat', "%s%s" % (tempfile.gettempdir(), temp.name])) # Doesn't print anything out as if file was empty
temp.close()
Works für mich? 'temp.name' gibt mir den richtigen Dateinamen (' "/ var/folders/ck/s38sycld0tvgb5qhmqtf750r0000gn/T/tmp7ejqww3s" ') – L3viathan
Was * genau * meinst du mit" funktioniert nicht "? Das ist keine adäquate Problemspezifikation. Und so wie es aussieht, funktioniert es ganz gut für mich ... –
Okay, ich schätze: Rufen Sie 'temp.flush()' nach dem Schreibanruf auf. Die Daten, die Sie schreiben, sind gepuffert. – L3viathan