Pregunta

Me considerado el uso de tmpnam para establecer el nombre del archivo de salida de un QPrinter. Sin embargo, la documentación de Python no recomienda su uso.

  

os.tmpnam ()

     

Devuelve un nombre de ruta única que es razonable para la creación de un temporal   archivo. ... Las aplicaciones son responsables   para crear y gestionar adecuadamente   Los archivos creados mediante rutas devueltos por   tmpnam (); no es la limpieza automática   proporcionado.

     
    

Advertencia

         

El uso de tmpnam () es vulnerable a ataques de enlace simbólico; Considere usar     tmpfile () (Object File sección     Creación) en su lugar.

  
     

Windows: Microsoft de   implementación de tmpnam() siempre   crea un nombre en el directorio raíz   de la unidad actual, y eso es   en general, una mala ubicación para una temp   archivo (dependiendo de los privilegios, es posible   incluso no ser capaz de abrir un archivo utilizando   este nombre).

  • ¿Es realmente inseguro si mi aplicación no necesita ningún privilegio especial?
  • ¿Cuáles son las alternativas seguras teniendo en cuenta que sólo puedo establecer una ruta como el nombre del archivo de salida de la QPrinter?
¿Fue útil?

Solución

Otros consejos

En función de cómo sus ofertas QPrinter con un archivo que ya existe, podría utilizar QTemporaryFile para crear un archivo, a continuación, cierre el archivo y mantener la referencia al objeto QTemporaryFile alrededor hasta que haya terminado con él. (Esto también va a limpiar el archivo para que al destruir el objeto.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top