2017-08-02 30 views

回答

2

第一種方式

with open('test.html', 'wb') as f: 
    f.write(body) 

只是節省您下載的二進制數據。

第二種方式

with open('test2.html', 'w') as f: 
    f.write(body.decode('utf-8')) 

假定數據是UTF-8,試圖那些UTF-8字節爲Unicode文本進行解碼,然後將其重新編碼到默認文件編碼,如通過locale.getpreferredencoding(False)指定。所以如果數據是已經 UTF-8它浪費地解碼並重新編碼它。如果它是而不是 UTF-8,那麼它指定錯誤的編碼來解碼它。如果該文件只包含普通的7位ASCII數據,那麼這將工作正常,但否則會給出錯誤的結果,或者提高UnicodeDecodeError