Вопрос

Я подумывал об использовании tmpnam чтобы задать имя выходного файла для QPrinter.Но документация Python рекомендует не использовать его.

os.tmpnam()

Возвращает уникальное имя пути, подходящее для создания временного файла....Приложения несут ответственность за правильное создание и управление файлами, созданными с использованием путей, возвращаемых tmpnam();автоматическая очистка не предусмотрена .

Предупреждение

Использование tmpnam() уязвимо для атак по символическим ссылкам;рассмотрите возможность использования вместо этого функции tmpfile() (раздел Файловый объект Создание).

Windows: Внедрение Корпорацией Майкрософт tmpnam() всегда создает имя в корневом каталоге текущего диска, и это как правило, неподходящее место для временного файла (в зависимости от привилегий, вы можете даже не иметь возможности открыть файл с помощью это имя).

  • Действительно ли это небезопасно, если моему приложению не нужны какие-либо особые привилегии?
  • Каковы безопасные альтернативы, учитывая, что я могу задать путь только в качестве имени выходного файла QPrinter?
Это было полезно?

Решение

Пожалуйста, прочтите http://docs.python.org/library/tempfile.html

Используй это вместо этого.

Другие советы

В зависимости от того, как ваш QPrinter работает с уже существующим файлом, вы можете использовать QTemporaryFile для создания файла, затем закрыть файл и сохранять ссылку на объект QTemporaryFile до тех пор, пока не закончите с ним.(Это также очистит файл для вас, когда вы уничтожите объект.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top