come creare una directory temporanea e ottenere il nome del percorso/file in pythonCome creare una directory temporanea e ottenere il nome del percorso/file in Python
79
A
risposta
136
4
Utilizzare il modulo tempfile.
19
Per espandere su un'altra risposta, ecco un esempio abbastanza completo che può sistemare il tmpdir anche sulle eccezioni:
import contextlib
import os
import shutil
import tempfile
@contextlib.contextmanager
def cd(newdir, cleanup=lambda: True):
prevdir = os.getcwd()
os.chdir(os.path.expanduser(newdir))
try:
yield
finally:
os.chdir(prevdir)
cleanup()
@contextlib.contextmanager
def tempdir():
dirpath = tempfile.mkdtemp()
def cleanup():
shutil.rmtree(dirpath)
with cd(dirpath, cleanup):
yield dirpath
def main():
with tempdir() as dirpath:
pass # do something here
5
In pitone 3.2 e successive, c'è un contextmanager utile per questo nel stdlib https://docs.python.org/3/library/tempfile.html#tempfile.TemporaryDirectory
Problemi correlati
- 1. Come creare una directory temporanea in formica?
- 2. Come creare una directory temporanea in C++?
- 3. Operazione temporanea in una directory temporanea nello script di shell
- 4. Come ottenere il nome file del modulo __main__ in Python?
- 5. come ottenere il nome file del chiamante, il nome del metodo in python
- 6. Come posso ottenere il nome della directory corrente in Javascript?
- 7. come posso creare una cartella temporanea in java 6?
- 8. Nome cartella Python nella directory
- 9. Cambia directory temporanea
- 10. Come creare una funzione temporanea in Emacs Lisp
- 11. Come posso ottenere il nome della directory corrente in Ruby?
- 12. Qual è il modo migliore per ottenere una directory temporanea vuota in Ruby on Rails?
- 13. Ottieni il percorso del file e l'URL per il file nella directory temporanea
- 14. Come ottenere il nome del file di input in MRjob
- 15. Come creare una nuova directory e un file in Vim
- 16. Come posso ottenere il nome e il cognome come nome completo in una query MYSQL?
- 17. (Django) come ottenere il nome del mese?
- 18. Creare virtualenv nella directory esistente senza creare una directory "locale"
- 19. Come creare una cartella/directory
- 20. Accesso alla directory temporanea in Swift
- 21. Come ottenere il nome della funzione come stringa in Python?
- 22. Come ottenere il nome di uno script Python in esecuzione?
- 23. Come stampare il nome del file e il numero di riga del test in python nose?
- 24. Come ottenere il nome del file breve di Windows in python?
- 25. Come ottenere il nome completo del tipo?
- 26. Ottenere il nome del computer Windows che esegue script Python?
- 27. Come creare una directory iOS?
- 28. Come creare una directory in Android?
- 29. Come creare un file su una directory?
- 30. getResourceAsStream percorsofile durante l'esecuzione .jar
Se si utilizza questo in un test, assicurarsi di rimuovere (shutil.rmtree) la directory perché non viene automaticamente cancellata dopo l'uso. "L'utente di mkdtemp() è responsabile dell'eliminazione della directory temporanea e del suo contenuto una volta terminato." Vedi: http://docs.python.org/2/library/tempfile.html#tempfile.mkdtemp –
Questa deve essere la risposta accettata! – gregoltsov
In python3, si può fare 'con tempfile.TemporaryDirectory() come dirpath:', e la directory temporanea verrà automaticamente ripulita all'uscita dal gestore di contesto. https://docs.python.org/3.4/library/tempfile.html#tempfile.TemporaryDirectory – Symmetric