Frage

Ich habe ein paar Unbestests mit SHELVE unter http://code.google.com/p/filecache/ und Python 2 speichert genau den Dateinamen, den ich in SHELVE.OPEN (), aber in Python 3 habe ich 3 verschiedene Dateien "BAK", "dat" und "dir".Bevor die Tests beginnen, möchte ich diese Dateien löschen, aber ich weiß nicht, ob ich eine Garantie für ihren Dateinamen oder Erweiterung habe.

Wie kann ich ein Shelve löschen, wenn ich es weiß, dass es Name ist?

War es hilfreich?

Lösung

Welche Erweiterungen erhalten Sie abhängig davon, welches Datenbanknütze verwendet wird.Es ist möglich, dass der Standard zwischen Python 2 und Python 3 unterscheidet, aber es kann auch ein Unterschied zwischen den Datenbankschnittstellen in Ihrer Umgebung sein.

Nein, Sie haben keine Garantie für die Erweiterungen, es sei denn, Sie verwenden eine bestimmte Implementierung, dh bsddbshelf oder dbfilenamehelfel.Sie könnten wahrscheinlich eine Datei in einem von TempFile erstellten temporären Verzeichnis angeben und das während des Verzeichnisses löschen.

Andere Tipps

Ich verwende SHELVE, da Tempfile- und Dict-[] Objekte nicht über Module bestehen können.Wie Sie entdeckt haben, löscht das Anrufen von .clear () nicht den Inhalt des persistenten Objekts auf der Festplatte auf der Festplatte , hinterlässt eine gefügte R + W-Datei auf der diskette nach dem Ausgang.(Ähnlich einer anhand-afterfreier Schwachstelle) können Sie das SHELVE löschen, wenn Sie fertig sind: generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top