Чтобы записать бинарный файл в Windows, вам нужно явно открыть как двоичный файл, т. Е .:
xkcdpicfile=open("C:\\Documents and Settings\\John Gann\\Desktop\\xkcd.png",
"wb")
обратите внимание на дополнительные b
в опциях: "wb"
, не просто "w"
!
Я бы также рекомендовал потерять print chunk
, который может посылать произвольные двоичные последовательности на консоль и, возможно, вызывать нежелательные побочные эффекты. Если вы хотите увидеть, как шестнадцатеричные байты бессмысленно звучат, может быть, print repr(chunk)
, если вы настаиваете. Но я бы нашел что-то более значимое, чтобы показать, например, len(chunk)
и, возможно, общее количество байтов на данный момент.