最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)把utf-8格式的文件轉(zhuǎn)換成gbk格式的文件

 更新時(shí)間:2015年01月22日 10:32:24   投稿:junjie  
這篇文章主要介紹了Python實(shí)現(xiàn)把utf-8格式的文件轉(zhuǎn)換成gbk格式的文件,本文給出了實(shí)現(xiàn)代碼并同時(shí)剖析了代碼的作用,需要的朋友可以參考下

需求:將utf-8格式的文件轉(zhuǎn)換成gbk格式的文件

實(shí)現(xiàn)代碼如下:

復(fù)制代碼 代碼如下:

def ReadFile(filePath,encoding="utf-8"):
    with codecs.open(filePath,"r",encoding) as f:
        return f.read()
 
def WriteFile(filePath,u,encoding="gbk"):
    with codecs.open(filePath,"w",encoding) as f:
        f.write(u)
 
def UTF8_2_GBK(src,dst):
    content = ReadFile(src,encoding="utf-8")
    WriteFile(dst,content,encoding="gbk")

代碼講解:

函數(shù)ReadFile的第二個(gè)參數(shù)指定以u(píng)tf-8格式的編碼方式讀取文件,返回的結(jié)果content為Unicode然后,在將Unicode以gbk格式寫入文件中。

這樣就能實(shí)現(xiàn)需求。
但是,如果要轉(zhuǎn)換格式的文件中包含有一些字符并不包含在gbk字符集中的話,就會(huì)報(bào)錯(cuò),類似如下:

復(fù)制代碼 代碼如下:

UnicodeEncodeError: 'gbk' codec can't encode character u'\xa0' in position 4813: illegal multibyte sequence

以上的報(bào)錯(cuò)信息的意思是:在將Unicode編碼成gbk的時(shí)候,不能將Unicode u'\xa0'編碼成gbk。

這里,我們需要弄清楚gb2312、gbk和gb18030三者之間的關(guān)系

復(fù)制代碼 代碼如下:

GB2312:6763個(gè)漢字
GBK:21003個(gè)漢字
GB18030-2000:27533個(gè)漢字
GB18030-2005:70244個(gè)漢字

所以,GBK是GB2312的超集,GB18030是GBK的超集。
理清了關(guān)系之后,我們進(jìn)一步改進(jìn)下代碼:
復(fù)制代碼 代碼如下:

def UTF8_2_GBK(src,dst):
    content = ReadFile(src,encoding="utf-8")
    WriteFile(dst,content,encoding="gb18030")

運(yùn)行后,發(fā)現(xiàn)沒有報(bào)錯(cuò),可以正常運(yùn)行。

因?yàn)椋贕B18030字符集中,可以找到u'\xa0'對(duì)應(yīng)的字符。
 此外,還有另外一種實(shí)現(xiàn)方案:
需要修改下WriteFile方法

復(fù)制代碼 代碼如下:

def WriteFile(filePath,u,encoding="gbk"):
    with codecs.open(filePath,"w") as f:
        f.write(u.encode(encoding,errors="ignore"))

這里,我們將Unicode編碼(encode)成gbk格式,但是注意encode函數(shù)的第二個(gè)參數(shù),我們賦值"ignore",表示在編碼的時(shí)候,忽略掉那些無法編碼的字符,解碼同理。

但是,當(dāng)我們執(zhí)行后,發(fā)現(xiàn)可以成功的將utf-8格式的文件修改成了ansi格式。但,另外發(fā)現(xiàn)生成的文件中,每個(gè)一行都有一行空行。

這里,可以指定以二進(jìn)制流的形式寫文件,修改后的代碼如下:

復(fù)制代碼 代碼如下:

def WriteFile(filePath,u,encoding="gbk"):
    with codecs.open(filePath,"wb") as f:
        f.write(u.encode(encoding,errors="ignore"))

相關(guān)文章

  • python動(dòng)畫manim中的顏色ManimColor的使用方法詳解

    python動(dòng)畫manim中的顏色ManimColor的使用方法詳解

    這篇文章主要介紹了python動(dòng)畫manim中的顏色ManimColor的使用方法,本文通過實(shí)例圖文展示給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • python讀取Dicom文件的示例詳解

    python讀取Dicom文件的示例詳解

    這篇文章通過示例代碼介紹了python讀取Dicom文件的方法,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • Python對(duì)CSV、Excel、txt、dat文件的處理

    Python對(duì)CSV、Excel、txt、dat文件的處理

    本文介紹的是Python對(duì)CSV、Excel、txt、dat文件的處理,具有一定的參考價(jià)值,需要的朋友跟隨小編一起來看下
    2018-09-09
  • 為何人工智能(AI)首選Python?讀完這篇文章你就知道了(推薦)

    為何人工智能(AI)首選Python?讀完這篇文章你就知道了(推薦)

    這篇文章主要介紹了為何人工智能(AI)首選Python,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • python 3.8 的anaconda下載方法

    python 3.8 的anaconda下載方法

    本文詳細(xì)介紹了如何下載和安裝帶有Python3.8的Anaconda發(fā)行版,包括Anaconda簡(jiǎn)介、下載步驟、安裝指南以及驗(yàn)證安裝結(jié)果,此外,還介紹了如何設(shè)置Python3.8作為默認(rèn)版本并利用別名功能進(jìn)行快捷切換,幫助讀者快速上手使用這一強(qiáng)大的數(shù)據(jù)科學(xué)工具,感興趣的朋友一起看看吧
    2025-02-02
  • Python繪制餅圖、圓環(huán)圖的實(shí)例

    Python繪制餅圖、圓環(huán)圖的實(shí)例

    這篇文章主要介紹了Python繪制餅圖、圓環(huán)圖的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Django框架文件上傳與自定義圖片上傳路徑、上傳文件名操作分析

    Django框架文件上傳與自定義圖片上傳路徑、上傳文件名操作分析

    這篇文章主要介紹了Django框架文件上傳與自定義圖片上傳路徑、上傳文件名操作,結(jié)合實(shí)例形式分析了Django框架文件上傳的原理、步驟、實(shí)現(xiàn)方法以及圖片上傳時(shí)自定義上傳路徑、上傳文件名的相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • python3.5繪制隨機(jī)漫步圖

    python3.5繪制隨機(jī)漫步圖

    這篇文章主要為大家詳細(xì)介紹了python3.5繪制隨機(jī)漫步圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Python高階函數(shù)之filter()函數(shù)代碼示例

    Python高階函數(shù)之filter()函數(shù)代碼示例

    這篇文章主要介紹了Python高階函數(shù)之filter()函數(shù)代碼示例,獲取了一個(gè)序列的時(shí)候,想要把一些內(nèi)容去掉,保留一部分內(nèi)容的時(shí)候可以使用高效的filter()函數(shù),需要的朋友可以參考下
    2023-07-07
  • Python文本特征抽取與向量化算法學(xué)習(xí)

    Python文本特征抽取與向量化算法學(xué)習(xí)

    這篇文章主要為大家詳細(xì)介紹了Python文本特征抽取與向量化算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12

最新評(píng)論

舞钢市| 比如县| 含山县| 渝北区| 白山市| 孟州市| 西乡县| 杭锦后旗| 普宁市| 托克托县| 龙南县| 雅安市| 兴海县| 巍山| 广河县| 沐川县| 东乡县| 吴江市| 得荣县| 深圳市| 临西县| 高青县| 绥中县| 长春市| 通城县| 穆棱市| 嘉荫县| 荔浦县| 锦州市| 兴义市| 江都市| 永福县| 娄底市| 高碑店市| 栾川县| 墨竹工卡县| 江永县| 长宁县| 满洲里市| 兖州市| 禹州市|