Pergunta

Eu considerei usando tmpnam para definir o nome de um QPrinter arquivo de saída. Mas a documentação Python recomenda contra a usá-lo.

os.tmpnam ()

Retorna um nome de caminho único que é razoável para criar um temporário Arquivo. ... Aplicações são responsáveis para criar e gerenciar adequadamente ficheiros criados com caminhos retornados por tmpnam (); nenhuma limpeza automática é fornecido.

Aviso

O uso de tmpnam () é vulnerável a ataques de link simbólico; considerar o uso de tmpfile () (seção objeto de arquivo Criação) em seu lugar.

Windows: Microsoft de implementação de tmpnam() sempre cria um nome no diretório raiz da unidade atual, e isso é geralmente um local pobre para uma temperatura Arquivo (dependendo privilégios, você pode até não ser capaz de abrir um arquivo usando este nome).

  • É realmente inseguro se o meu aplicativo não precisa de privilégios especiais?
  • Quais são as alternativas seguras, considerando que só posso definir um caminho como o nome do QPrinter arquivo de saída?
Foi útil?

Solução

Por favor, leia http://docs.python.org/library/tempfile.html

Use esse lugar.

Outras dicas

Dependendo de como seus QPrinter trata de um arquivo que já existe, você poderia usar QTemporaryFile para criar um arquivo, em seguida, feche o arquivo e manter a referência ao objeto QTemporaryFile redor até que você é feito com ele. (Isso também irá limpar o arquivo para você quando você destruir o objeto.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top