Möglicherweise möchten Sie eine verwenden, tempfile.SpooledTemporaryFiledie Ihnen das Beste aus beiden Welten bietet, da zunächst eine temporäre speicherbasierte virtuelle Datei erstellt wird, automatisch jedoch zu einer physischen festplattenbasierten Datei gewechselt wird, wenn die im Speicher gespeicherten Daten einen bestimmten Wert überschreiten Größe.
Eine weitere nette Funktion ist, dass (bei Verwendung des Speichers) automatisch entweder ein io.BytesIOoder io.StringIOje nach verwendetem Speicher modeverwendet wird, sodass Sie entweder Unicode-Zeichenfolgen oder Binärdaten (Bytes) lesen und schreiben können.
Der einzige schwierige Teil könnte die Tatsache sein, dass Sie das Schließen der Datei zwischen den Schritten vermeiden müssen, da dies dazu führen würde, dass sie aus dem Speicher oder der Festplatte gelöscht wird. Stattdessen können Sie es einfach mit einem Dateimethodenaufruf zum Anfang zurückspulen seek(0).
Wenn Sie mit der Datei fertig sind und sie schließen, wird sie automatisch von der Festplatte gelöscht, wenn die darin enthaltene Datenmenge dazu führte, dass sie auf eine physische Datei übertragen wurde.