¿Hay una forma multiplataforma de obtener la ruta al temp
directorio 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 temp
directorio 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:
TMPDIR
variable de entorno.TEMP
variable de entorno.TMP
variable de entorno.Wimp$ScrapDir
variable de entorno.C:\TEMP
,C:\TMP
,\TEMP
, y\TMP
, en ese orden./tmp
,/var/tmp
y/usr/tmp
, en ese orden.fuente
/var/folders/<garbage/here>
lugar de/tmp
porque así es como$TMPDIR
se 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ó.