2011-02-14 9 views
1

들어오는 모든 요청을 처리하고 입력 유형에 따라 내용을 생성/반환하는 python 스크립트가 있습니다.Windows의 이진 파일에 대해 sys.stdout.write가 제대로 작동하지 않습니다.

내가 생성 된 HTML은 내가 될 것으로 기대 것입니다

print "Content-Type: text/plain\r\n\r\n" #debug mode 

내 파이썬 스크립트를 실행합니다. 그러나 위의 줄을 주석으로 처리하면 출력의 일부가 잘립니다. 파일을 읽고 sys.stdout.write을 사용하여 html을 생성하여 출력에 씁니다.

코드 링크 :

드라이버 :

과 : http://pastebin.com/j87rrQyx

샘플을 (표준 출력에 기록 writeFileToStdout을 포함) : http://pastebin.com/VULgJWEx이 핸들러

이 (인쇄 문을 포함) 콘텐츠 유형 : 텍스트 -

인쇄없이 0
Content-Length: 105 

Content-Type: application/vnd.apple.mpegurl 

#EXTM3U 

#EXT-X-TARGETDURATION:10 

#EXT-X-MEDIA-SEQUENCE:118394 

#EXTINF:5, 

20110203T230818-01-118403.ts 


:

Content-Length: 105 

Content-Type: application/vnd.apple.mpegurl 

#EXTM3U 

#EXT-X-TARGETDURATION:10 

#EXT-X-MEDIA-SEQUENCE:118394 

#EXTINF:5, 

20110203T230818-01-118403 #(ts is missing!!) 

마지막 TS는 잘립니다.


인쇄물이 왜 발생했는지 실마리가 있습니까? (또는 다른 것입니까?)

+0

다른 출력에도 코드를 게시 할 수 있습니까? – Thomas

+0

몇 가지 코드로 질문을 업데이트했습니다. – brainydexter

답변

3

예상대로 인쇄 또는 표준 출력에 문제가 없었습니다.

이진 파일 (Windows)에서 읽으려고하고 stdout에 쓰려고했습니다. 'sys'모듈은 사용자를 대신하여 'stdout'파일 객체를 열고 일반적으로 텍스트 모드에서 작업을 수행합니다.

msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)

link이 문제를 설명하는 좋은 일을 : 그래서

는이 문제를 해결합니다.

+0

+1 내 하루를 저장했습니다. M $ 디자인은 결국 훌륭합니다. – Viet

관련 문제