¿Hay una forma multiplataforma de obtener la ruta al tempdirectorio en Python 2.6?
Por ejemplo, bajo Linux sería /tmp, mientras que bajo XP C:\Documents and settings\[user]\Application settings\Temp.
¿Hay una forma multiplataforma de obtener la ruta al tempdirectorio en Python 2.6?
Por ejemplo, bajo Linux sería /tmp, mientras que bajo XP C:\Documents and settings\[user]\Application settings\Temp.
Respuestas:
Ese sería el módulo temporal .
Tiene funciones para obtener el directorio temporal, y también tiene algunos accesos directos para crear archivos y directorios temporales, ya sea con o sin nombre.
Ejemplo:
Para completar, así es como busca el directorio temporal, de acuerdo con la documentación:
TMPDIRvariable de entorno.TEMPvariable de entorno.TMPvariable de entorno.Wimp$ScrapDirvariable de entorno.C:\TEMP,C:\TMP,\TEMP, y\TMP, en ese orden./tmp,/var/tmpy/usr/tmp, en ese orden.fuente
/var/folders/<garbage/here>lugar de/tmpporque así es como$TMPDIRse configura. Ver aquí .tempfile.gettempdir()resuelveC:\users\user\AppData\Local\Temp. Un camino lamentablemente largo.Esto debería hacer lo que quieras:
Para mí en mi caja de Windows, obtengo:
y en mi caja de Linux obtengo:
fuente
Yo suelo:
Esto se debe a que en MacOS, es decir, Darwin,
tempfile.gettempdir()yos.getenv('TMPDIR')devuelve un valor como'/var/folders/nj/269977hs0_96bttwj2gs_jhhp48z54/T'; Es uno que no siempre quiero.fuente
La forma más simple, basada en el comentario y la respuesta de @ nosklo :
Pero si desea controlar manualmente la creación de los directorios:
De esa manera, puede limpiar fácilmente después de usted mismo cuando haya terminado (por privacidad, recursos, seguridad, lo que sea) con:
Esto es similar a lo que hacen aplicaciones como Google Chrome y Linux
systemd. Solo usan un hash hexadecimal más corto y un prefijo específico de la aplicación para "anunciar" su presencia.fuente
tempfile.mkdtemp()en su lugarmkdtemp()que sugirió.