So erstellen Sie eine temporäre Datei, die eine Kopie einer anderen Datei in Python ist

7

Ich weiß, dass es möglich ist, eine temporäre Datei zu erstellen und die Daten der Datei zu schreiben, die ich kopieren möchte. Ich habe mich nur gefragt, ob es eine Funktion wie:

gibt %Vor%     
Gideon 05.07.2011, 18:59
quelle

4 Antworten

15

Es gibt keinen direkt, aber Sie können eine Kombination aus tempfile und shutil.copy2 verwenden, um dasselbe Ergebnis zu erzielen:

%Vor%

Sie müssen jedoch die temporäre Datei im Aufrufer entfernen.

    
TorelTwiddler 05.07.2011, 19:11
quelle
2

Eine Variante der Antwort von @tramdas, die berücksichtigt, dass die Datei nicht zweimal unter Windows geöffnet werden kann. Diese Version ignoriert die Erhaltung der Dateiendung.

%Vor%     
cod3monk3y 14.11.2014 17:17
quelle
2

Das ist nicht ganz so prägnant, und ich stelle mir vor, dass es Probleme mit der Ausnahmesicherheit geben könnte (zB was passiert, wenn 'Originalpfad' nicht existiert oder das temporary_copy-Objekt den Bereich verlässt, während die Datei geöffnet ist) aber dieser Code fügt ein wenig RAII zum Aufräumen hinzu. Der Unterschied zur direkten Verwendung von NamedTemporaryFile besteht darin, dass Sie nicht mit einem Dateiobjekt enden, sondern mit einer Datei, die gelegentlich erwünscht ist (z. B. wenn Sie einen anderen Code zum Lesen aufrufen möchten oder ähnliches) / p> %Vor%

in Ihrem Code würden Sie schreiben:

%Vor%     
user293026 24.03.2017 16:43
quelle
0

Eine leichte Abweichung (insbesondere benötigte ich das Feature preserve_extension für meinen Anwendungsfall, und ich mag die Funktion "Selbstreinigung"):

%Vor%     
tramdas 13.11.2014 03:05
quelle

Tags und Links