문제

나는 사용을 고려했다 tmpnam a의 출력 파일 이름을 설정합니다 QPrinter. 그러나 파이썬 문서는이를 사용하는 것을 권장합니다.

os.tmpnam ()

임시 파일을 작성하는 데 합리적인 고유 한 경로 이름을 반환하십시오. ... 응용 프로그램은 tmpnam ()에 의해 반환 된 경로를 사용하여 생성 된 파일을 올바르게 작성하고 관리 할 책임이 있습니다. 자동 정리가 제공되지 않습니다.

경고

tmpnam ()의 사용은 Symlink 공격에 취약합니다. 대신 tmpfile () (섹션 파일 개체 생성)를 사용하는 것을 고려하십시오.

Windows : Microsoft의 구현 tmpnam() 항상 현재 드라이브의 루트 디렉토리에 이름을 생성하며 일반적으로 임시 파일의 위치가 좋지 않습니다 (권한에 따라이 이름을 사용하여 파일을 열지 못할 수도 있음).

  • 내 응용 프로그램이 특별한 권한이 필요하지 않으면 이것이 실제로 불안합니까?
  • 경로를 출력 파일 이름으로 만 설정할 수 있다는 점을 고려하여 안전한 대안은 무엇입니까? QPrinter?
도움이 되었습니까?

해결책

읽어주세요 http://docs.python.org/library/tempfile.html

대신 사용하십시오.

다른 팁

Qprinter가 이미 존재하는 파일을 처리하는 방법에 따라 QtemporaryFile을 사용하여 파일을 작성한 다음 파일을 닫은 다음 QtemporaryFile 오브젝트에 대한 참조를 유지할 때까지 계속 수행 할 수 있습니다. (이것은 또한 객체를 파괴 할 때 파일을 정리할 것입니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top