python錯誤原因及解決方法:TypeError: write() argument must be str, not bytes

今天運行了一個GitHub上的源碼出現TypeError: write() argument must be str, not bytes錯誤,主要是因爲源碼是python2實現的,而我使用的是python3。

python2寫入或讀取二進制文件時,使用w或r模式即可,而python3給open函數添加了名爲encoding的新參數,而這個新參數的默認值卻是‘utf-8’。這樣在文件句柄上進行read和write操作時,系統就要求開發者必須傳入包含Unicode字符的實例,而不接受包含二進制數據的bytes實例。

解決辦法是使用二進制寫入模式(‘wb’)來開啓待操作文件,而不能像原來那樣,採用字符寫入模式(‘w’)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章