国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一文搞懂Python文件讀取報(bào)錯(cuò)UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte

這篇具有很好參考價(jià)值的文章主要介紹了一文搞懂Python文件讀取報(bào)錯(cuò)UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

問題描述:

下面是一個(gè)非常簡單的讀取并打印文件內(nèi)容的示例:

with open('test.txt', 'r') as f:
    contents = f.read()

print(contents)

在test.txt文本文件中,只有一個(gè) `你` 字:

test.txt

但是,我們在運(yùn)行這段代碼時(shí),出現(xiàn)了如下的錯(cuò)誤:

一文搞懂Python文件讀取報(bào)錯(cuò)UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte,Python相關(guān),python,pycharm,Powered by 金山文檔

報(bào)錯(cuò):

UnicodeDecodeError: 'gbk' codec can't decode byte 0xa0 in position 2: incomplete multibyte sequence

分析問題:

  1. 首先我們得知道這個(gè)錯(cuò)誤是什么意思。

報(bào)錯(cuò)翻譯過來就是:

Unicode解碼錯(cuò)誤:“gbk”編解碼器無法解碼位置2的字節(jié)0xa0:不完整的多字節(jié)序列

  1. 通過了解報(bào)錯(cuò)信息,我們知道了這是一個(gè)解碼的錯(cuò)誤。要分析這個(gè)錯(cuò)誤,我們首先要對(duì)Python的字符編碼有一個(gè)基本的認(rèn)識(shí)。

對(duì)于Python字符編碼的問題,大家可以看看我的這篇博文:

一文搞懂Python字符編碼(編碼方式、亂碼和報(bào)錯(cuò)原因)_lyb06的博客-CSDN博客

在這篇博文中,我不僅介紹了字符編碼,還分析了這個(gè)報(bào)錯(cuò)出現(xiàn)的具體原因,但這里我們主要探討解決方法,就不做贅述了。想了解具體原因可看該文第3、4部分。
  1. 現(xiàn)在我們知道了這個(gè)錯(cuò)誤是因?yàn)槲覀兪褂胓bk(Windows 平臺(tái),默認(rèn)編碼是 gbk)對(duì)文本進(jìn)行解碼時(shí),有一處地方多出了一個(gè)字節(jié)無法解碼。gbk將一個(gè)漢字編碼為2個(gè)字節(jié),也就是每兩個(gè)字節(jié)可解碼為一個(gè)漢字,而一個(gè)字節(jié)無法解碼,故報(bào)錯(cuò),這也就解釋了報(bào)錯(cuò)信息后面的:incomplete multibyte sequence(不完整的多字節(jié)序列)。

  1. 出現(xiàn)這種問題,一般是由于該文本文件是用utf-8編碼的(utf-8將一個(gè)漢字編碼為3個(gè)字節(jié)),但我們卻使用gbk來解碼。由于二者對(duì)于漢字的編碼方式是不一樣的,解碼時(shí)又恰好出現(xiàn)了多余的無法解碼的字節(jié),因此就出現(xiàn)了報(bào)錯(cuò)。

為什么要說恰好出現(xiàn)多余的無法解碼的字節(jié)?

因?yàn)橛蟹N特殊情況不會(huì)報(bào)錯(cuò)!用utf-8編碼了兩個(gè)漢字(6個(gè)字節(jié)),此時(shí)用gbk可以將其解碼為3個(gè)漢字(6個(gè)字節(jié)分為3份2個(gè)字節(jié),可以對(duì)應(yīng)3個(gè)漢字),這種情況不會(huì)報(bào)錯(cuò),但顯示的信息不一樣,就是我們常說的亂碼 ,詳情見上面提到的博文。

你可將讀取的test.txt文件中的內(nèi)容改為兩個(gè)漢字 "你好" ,在運(yùn)行一下這個(gè)代碼,你會(huì)發(fā)現(xiàn)沒有報(bào)錯(cuò),但是打印出的信息就不是 '你好' 了。

5、要解決這個(gè)問題,我們就要讓Python用utf-8來解碼文件。

解決方法:

在使用open() 時(shí),我們添加參數(shù) encoding='utf-8'。使用這個(gè)參數(shù),相當(dāng)于我們就告訴了Python:我們這個(gè)文件是用utf-8編碼的,你一會(huì)兒對(duì)這個(gè)文件解碼的時(shí)候,就用utf-8解碼,不要用gbk解碼。

with open('test.txt', 'r', encoding='utf-8') as f:
    contents = f.read()

print(contents)

輸出:

一文搞懂Python文件讀取報(bào)錯(cuò)UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte,Python相關(guān),python,pycharm,Powered by 金山文檔

成功!問題解決。文章來源地址http://www.zghlxwxcb.cn/news/detail-604358.html

到了這里,關(guān)于一文搞懂Python文件讀取報(bào)錯(cuò)UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python 讀取csv文件時(shí)報(bào)錯(cuò):UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xd0 in position 0:invalid

    Python 讀取csv文件時(shí)報(bào)錯(cuò):UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xd0 in position 0:invalid

    問題描述:我在讀取csv文件時(shí) python報(bào)了如下錯(cuò)誤 或者報(bào)了以下錯(cuò)誤:UnicodeDecodeError: \\\'gbk\\\' codec can\\\'t decode byte 0xb1 in position 5: illegal multibyte sequence 目錄 問題引出: 錯(cuò)誤示范如下: 解決方案如下: 我先創(chuàng)建的xlsx 或者 xls文件,然后再改成以csv為后綴的文件,最后在python里讀取失

    2024年02月16日
    瀏覽(93)
  • 關(guān)于UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte的解決辦法

    關(guān)于UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte的解決辦法

    最近在學(xué)《Python編程:從入門到實(shí)踐》,在做到 例題 10-10:常見單詞 時(shí)遇到了如下報(bào)錯(cuò)信息: 報(bào)錯(cuò)原因: UnicodeDecodeError: ‘gbk’ codec can’t decode byte Python 的 open 方法默認(rèn)編碼取決于平臺(tái),如果是 Windows 平臺(tái),默認(rèn)編碼是 gbk,如果文件是 utf-8 編碼,就會(huì)報(bào)這個(gè)錯(cuò)誤。 將打開

    2024年02月11日
    瀏覽(234)
  • Python 基于csv 讀取文本文件提示:‘gbk‘ codec can‘t decode byte 0xbf in position 2: illegal multibyte sequence

    Python 基于csv 讀取文本文件提示:‘gbk‘ codec can‘t decode byte 0xbf in position 2: illegal multibyte sequence 錯(cuò)誤大致意思:Unicode的解碼(Decode)出現(xiàn)錯(cuò)誤(Error)了,以gbk編碼的方式去解碼(該字符串變成Unicode),但是此處通過gbk的方式,卻無法解碼(can’t decode )?!癷llegal multibyt

    2024年02月05日
    瀏覽(125)
  • Python 運(yùn)行報(bào)錯(cuò) UnicodeDecodeError 解決方法

    問題描述: 在使用? Jupyter Notebook? 進(jìn)行深度學(xué)習(xí)模型導(dǎo)入的時(shí)候報(bào)錯(cuò)UnicodeDecodeError 問題描述表示出現(xiàn)了無法識(shí)別的字符,導(dǎo)致模型文件加載失敗,并且這個(gè)無法識(shí)別的字符是第26個(gè)字符。 解決思路: 實(shí)際上是因?yàn)檫@段代碼中傳遞模型文件路徑字符出現(xiàn)了utf-8無法解碼的情況

    2024年02月10日
    瀏覽(13)
  • 一篇文章徹底搞懂Python字符編碼方式(中文編碼,UTF-8,unicode,gb,gbk,中文亂碼,爬蟲中文亂碼)

    一篇文章徹底搞懂Python字符編碼方式(中文編碼,UTF-8,unicode,gb,gbk,中文亂碼,爬蟲中文亂碼)

    目錄 前言 一、字符編碼方式的來龍去脈。 1.字符集的含義。 2.編碼方式演化過程 1.ASCII 2.GB2312、GBK 3.Unicode 4.UTF-8 二、Python的字符編碼及相關(guān)操作 1.window系統(tǒng)的字符編碼 2.Python的字符編碼 1.Python中str與bytes的區(qū)別和聯(lián)系 2.Python encode()方法【對(duì)str進(jìn)行編碼】 3.Python decode()方法【對(duì)

    2024年01月17日
    瀏覽(36)
  • 解決UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x80 in position 0: illegal multibyte sequence問題

    1、解決Python報(bào)錯(cuò)UnicodeDecodeError: \\\'gbk\\\' codec can\\\'t decode byte 0x80 in position 658: illegal multibyte 改成 2、解決UnicodeDecodeError: \\\'gbk\\\' codec can\\\'t decode byte 0x80 in position 0: illegal multibyte sequence問題 改成

    2024年02月16日
    瀏覽(95)
  • 一文搞懂linux的proc文件

    一文搞懂linux的proc文件

    ? 目錄 proc文件夾是干嘛用? proc下都有什么系統(tǒng)信息? ?/proc/bus /proc/buddyinfo /proc/cgroups??????? /proc/cmdline /proc/consoles /proc/cpuinfo /proc/crypto /proc/devices /proc/diskstats /proc/execdomains /proc/fb /proc/filesystems? ? ? ? /proc/fs /proc/inerrupts /proc/iomem /proc/ioports /proc/irq /proc/kallsyms /proc/keys /pr

    2024年02月03日
    瀏覽(28)
  • 解決SubtitlesClip讀取字幕文件時(shí)報(bào) ‘gbk‘ codec can‘t decode byte xxx in position xxx

    操作系統(tǒng):windows10 moviepy版本:1.0.3 python:3.10 在使用moviepy處理視頻時(shí),加載srt字幕使用的SubtitlesClip這個(gè)類讀取的文件。隨后報(bào)錯(cuò)如下: moviepy這個(gè)版本讀取文件時(shí),使用的with open,且沒有指定encoding參數(shù),因此默認(rèn)使用的操作系統(tǒng)的編碼方式打開,那么在windows系統(tǒng)通常會(huì)是

    2024年02月09日
    瀏覽(80)
  • 一文徹底搞懂Nginx的.conf文件路徑配置

    一文徹底搞懂Nginx的.conf文件路徑配置

    前言:最近在Nginx上部署Vue項(xiàng)目,同時(shí)還存了一些靜態(tài)資源,但我查了好久都沒找到一篇詳細(xì)介紹路徑配置的文章,因此就根據(jù)我有限的經(jīng)驗(yàn)寫了這篇文章,希望能夠?qū)ψx者有所幫助 如下圖所示,這是我配置好的一個(gè)server代碼塊,我這里配置了https,所以會(huì)比默認(rèn)的多一部分

    2024年02月09日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包