久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

Python|如何讓文件讀取不再亂碼

有時在讀取文件時是否會出現亂碼?因為在中文Windows系統中,如果不指定文本文件的編碼,那么它就會采用系統默認的GBK編碼,即一個英文字符是ASCII碼,一個漢字是兩個字節的內碼。文件的本質是二進制文件,相同的文本采用不同的編碼得到的二進制數據是不同的。

解決方案:

GBK編碼執行文件后是7個字節,分別是Ox61Ox62 OX63 Oxce Oxd2 Oxc3 Oxc7

fobj=open('c:\\abc.txt','wt',encoding=’gbk’)fobj.write('abc 我們')fobj.close()

其中前三個是abc符號,Oxce Oxd2是‘我’,Oxc3 Oxc7是‘們’。而在open中用encoding參數指定UTF-8編碼,執行后就是9個字符,它們分別是:Ox61 Ox62 Ox63 Oxe6 Ox88 Ox91 Oxe4 OxbbOxac.其中Oxe6 Ox88 Ox91是‘我’,Oxe4 Oxbb Oxac是‘們’。

使用方法:

def writeFile():

    f=open('abc.txt','wt',encoding='utf-8')

    f.write('abc我們')

    f.close()def readFile():

    f=open('abc.txt','rt',encoding='utf-8')

    for s in f.readlines(): print(s,end='')

    f.close()try: writeFile()

    readFile()except Exception as e:

    print(e)

#運行結果adc我們

當使用的編碼不一致時就會出現以下情況:

def writeFile():

    f=open('abc.txt','wt',encoding='utf-8')

    f.write('abc我們')

    f.close()def readFile():

    f=open('abc.txt','rt',encoding='gbk')

    for s in f.readlines():

    print(s,end='')

    f.close()try:

    writeFile() readFile()except Exception as e:

    print(e)

    #運行結果abc鎴戜滑

結語

文本讀取的默認編碼是GBK,所以想用GBK讀文件時可以用encoding參數,也可以不用,它會默認的使用GBK,但如果要使用UTF-8編碼就必須用encoding參數指定。

好啦!今天的分享到這里就結束了,希望大家持續關注馬哥教育官網,每天都會有大量優質內容與大家分享

好啦!今天的分享到這里就結束了,希望大家持續關注馬哥教育官網,每天都會有大量優質內容與大家分享!版權聲明:轉載文章來自公開網絡,版權歸作者本人所有,推送文章除非無法確認,我們都會注明作者和來源。如果出處有誤或侵犯到原作者權益,請與我們聯系刪除或授權事宜。

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!
<p id="o0hlv"></p><pre id="o0hlv"><label id="o0hlv"></label></pre>

      主站蜘蛛池模板: 开化县| 永靖县| 炉霍县| 南木林县| 屏东市| 南平市| 聊城市| 太康县| 茂名市| 奉新县| 锦州市| 禄劝| 景洪市| 德庆县| 平潭县| 囊谦县| 嘉祥县| 农安县| 西吉县| 岳普湖县| 吉水县| 名山县| 潮州市| 阿图什市| 芮城县| 阳曲县| 鄱阳县| 望城县| 蓝山县| 长乐市| 宿迁市| 彩票| 南溪县| 江阴市| 清涧县| 通州市| 石渠县| 天水市| 游戏| 磐安县| 十堰市|