91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python 文件報錯TypeError怎么解決

發布時間:2020-10-26 15:08:44 來源:億速云 閱讀:365 作者:Leah 欄目:開發技術

這篇文章運用簡單易懂的例子給大家介紹Python 文件報錯TypeError怎么解決,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

處理上傳的文件:

 f1 = request.FILES['pic']
 fname = '%s/%s' % (settings.MEDIA_ROOT, f1.name)
 with open(fname, 'w') as pic:
  for c in f1.chunks():
  pic.write(c)

測試報錯:

TypeError at /upload/

write() argument must be str, not bytes

把之前的打開語句修改為用二進制方式打開:

 f1 = request.FILES['pic']
 fname = '%s/%s' % (settings.MEDIA_ROOT, f1.name)
 with open(fname, 'wb+') as pic:
  for c in f1.chunks():
  pic.write(c)

沒有問題了~

補充知識:python3使用pickle讀取文件提示TypeError或者UnicodeDecodeError的解決辦法

python的pickle模塊實現了基本的數據序列和反序列化。通過pickle模塊的序列化操作我們能夠將程序中運行的對象信息保存到文件中去,永久存儲;通過pickle模塊的反序列化操作,我們能夠從文件中創建上一次程序保存的對象。

python2使用的是cPickle模塊,而在python3中cPickle已經被取消,取而代之的是pickle模塊。

開發過程中,我曾經遇到一個奇怪的問題,在讀取一個文件時候,使用python2的如下方式:

import cPickle

train, test, dicts = cPickle.load(open("./dataset/atis.pkl"))

是可以正常讀取文件的。

可是當換做python3的方式讀取文件時候,如下:

import pickle

train, test, dicts = pickle.load(open("./dataset/atis.pkl"))

卻獲得了錯誤提示,提示信息如下:

Traceback (most recent call last):

File “Main.py”, line 4, in

train, test, dicts = pickle.load(open(“./dataset/atis.pkl”))

TypeError: ‘str' does not support the buffer interface

查詢錯誤信息后得知解決辦法 鏈接,應該指明用二進制方式打開文件,于是代碼改為:

import pickle

train, test, dicts = pickle.load(open("./dataset/atis.pkl", "rb"))

可是這時候錯誤變成了:

Traceback (most recent call last):

File “Main.py”, line 4, in

train, test, dicts = pickle.load(open(“./dataset/atis.pkl”, “rb”))

UnicodeDecodeError: ‘ascii' codec can't decode byte 0xe8 in position 0: ordinal not in range(128)

于是再次求助萬能的google,終于找到了解決辦法 鏈接,我們需要告訴pickle:how to convert Python bytestring data to Python 3 strings,The default is to try and decode all string data as ASCII,所以代碼改為:

import pickle

train, test, dicts = pickle.load(open("./dataset/atis.pkl", "rb"), encoding='iso-8859-1')

關于Python 文件報錯TypeError怎么解決就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

额尔古纳市| 蒲城县| 尉犁县| 民乐县| 开原市| 弋阳县| 西平县| 娄底市| 龙陵县| 连州市| 新巴尔虎右旗| 深水埗区| 蓬溪县| 霍邱县| 留坝县| 楚雄市| 清河县| 汉川市| 永和县| 渝北区| 莱西市| 库尔勒市| 蓬莱市| 定西市| 五莲县| 黔东| 汉沽区| 菏泽市| 北海市| 思茅市| 昭苏县| 尼木县| 丘北县| 宣威市| 广元市| 新野县| 吉林市| 乌审旗| 张家口市| 盐山县| 行唐县|