欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析Python 字符編碼與文件處理

 更新時(shí)間:2020年09月24日 08:36:51   作者:Wuliwawa  
這篇文章主要介紹了Python 字符編碼與文件處理的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下

Python字符編碼

目前計(jì)算機(jī)內(nèi)存的字符編碼都是Unicode,目前國(guó)內(nèi)的windows操作系統(tǒng)采用的是gbk。

python2默認(rèn)的字符編碼方式是ASCII

python3默認(rèn)的字符編碼方式是Unicode

.py文件頭部的#coding:utf-8是幫助python識(shí)別.py文件的編碼方式,故在寫(xiě).py文件時(shí)要注意文件頭和文件保存時(shí)的編碼方式要相同,否則可能會(huì)出現(xiàn)亂碼

python程序運(yùn)行過(guò)程:

  1. python的解釋器現(xiàn)在內(nèi)存中啟動(dòng)
  2. 解釋器把要運(yùn)行的文件以文本文件的形式讀進(jìn)內(nèi)存
  3. 解釋器按照文件的語(yǔ)法格式解釋執(zhí)行代碼

python2和python3程序的運(yùn)行方式基本相同

python2的解釋器在運(yùn)行程序時(shí),將文件內(nèi)的代碼按照文件頭的編碼讀進(jìn)內(nèi)存。例如文件頭部的編碼是gbk,python2讀進(jìn)內(nèi)存的時(shí)候,直接把文件在硬盤(pán)里的gbk二進(jìn)制編碼讀進(jìn)內(nèi)存。如果在不是以gbk為默認(rèn)編碼的終端輸出時(shí),會(huì)出現(xiàn)亂碼。python2可以在字符串對(duì)象前加'u'表示Unicode字符,但是這樣就不是str變量了。雖然pyhton2也能支持Unicode編碼,但是這就像給python2打了一個(gè)大補(bǔ)丁。python2的Unicode對(duì)象就是python3str對(duì)象。

python3的解釋器就好多了,它在執(zhí)行文件內(nèi)的代碼之前會(huì)先將代碼按照文件頭的編碼轉(zhuǎn)換成Unicode編碼讀進(jìn)內(nèi)存。這樣無(wú)論是在什么編碼的機(jī)器上運(yùn)行,Unicode編碼都能很好的轉(zhuǎn)換成相應(yīng)的編碼。

Python 文件處理

python程序不能直接操作硬盤(pán)的文件,一般都是通過(guò)操作系統(tǒng)提供的接口間接地操作文件。

一般來(lái)說(shuō),對(duì)文件的操作的mode有兩種,t:字符方式 b:二進(jìn)制方式

字符方式只能操作文本文件,在打開(kāi)文件的時(shí)候需要指定encoding,不然會(huì)因?yàn)槎叹洳粶?zhǔn)確產(chǎn)生亂碼

二進(jìn)制方式可以操作所有的文件,在打開(kāi)文件的時(shí)候不要指定encoding

操作完文件后調(diào)用文件對(duì)象的close()函數(shù)會(huì)關(guān)閉文件,這只是關(guān)閉操作系統(tǒng)對(duì)文件的訪問(wèn),在程序里文件對(duì)象會(huì)在程序結(jié)束的時(shí)候自動(dòng)釋放,所以在操作文件結(jié)束后,記得調(diào)用close()函數(shù),釋放系統(tǒng)資源。當(dāng)然可以用with上下文管理自動(dòng)釋放資源。

以上就是淺析Python 字符編碼與文件處理的詳細(xì)內(nèi)容,更多關(guān)于Python 字符編碼與文件處理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python 上下文管理器使用方法小結(jié)

    python 上下文管理器使用方法小結(jié)

    本文介紹了Python中的上下文管理器,以及如何結(jié)合with語(yǔ)句來(lái)使用上下文管理器,并且總結(jié)了一下with 語(yǔ)句的執(zhí)行流程。在很多情況下,with語(yǔ)句可以簡(jiǎn)化代碼,并增加代碼的健壯性。
    2017-10-10
  • Python接口自動(dòng)化淺析logging封裝及實(shí)戰(zhàn)操作

    Python接口自動(dòng)化淺析logging封裝及實(shí)戰(zhàn)操作

    本篇文章主要給大家介紹將了logging常用配置放入yaml配置文件、logging日志封裝及結(jié)合登錄用例,講解日志如何在接口測(cè)試中運(yùn)用的實(shí)例操作
    2021-08-08
  • python圖形界面教程Tkinter詳解

    python圖形界面教程Tkinter詳解

    Python自帶了tkinter模塊,實(shí)質(zhì)上是一種流行的面向?qū)ο蟮腉UI工具包?TK?的Python編程接口,提供了快速便利地創(chuàng)建GUI應(yīng)用程序的方法,下面這篇文章主要給大家介紹了關(guān)于python圖形界面教程Tkinter的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • java中兩個(gè)byte數(shù)組實(shí)現(xiàn)合并的示例

    java中兩個(gè)byte數(shù)組實(shí)現(xiàn)合并的示例

    今天小編就為大家分享一篇java中兩個(gè)byte數(shù)組實(shí)現(xiàn)合并的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Python 中Django安裝和使用教程詳解

    Python 中Django安裝和使用教程詳解

    這篇文章主要介紹了python中Django安裝和使用教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Django Form設(shè)置文本框?yàn)閞eadonly操作

    Django Form設(shè)置文本框?yàn)閞eadonly操作

    這篇文章主要介紹了Django Form設(shè)置文本框?yàn)閞eadonly操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • python忽略警告(warning)的3種方法小結(jié)

    python忽略警告(warning)的3種方法小結(jié)

    python開(kāi)發(fā)中經(jīng)常遇到報(bào)錯(cuò)的情況,但是warning通常并不影響程序的運(yùn)行,而且有時(shí)特別討厭,下面我們來(lái)說(shuō)下如何忽略warning錯(cuò)誤,這篇文章主要給大家介紹了關(guān)于python忽略警告(warning)的3種方法,需要的朋友可以參考下
    2023-10-10
  • Python django實(shí)現(xiàn)簡(jiǎn)單的郵件系統(tǒng)發(fā)送郵件功能

    Python django實(shí)現(xiàn)簡(jiǎn)單的郵件系統(tǒng)發(fā)送郵件功能

    這篇文章主要介紹了Python django實(shí)現(xiàn)簡(jiǎn)單的郵件系統(tǒng)發(fā)送郵件功能,結(jié)合實(shí)例形式分析了django發(fā)送郵件的實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-07-07
  • Python運(yùn)算符重載詳解及實(shí)例代碼

    Python運(yùn)算符重載詳解及實(shí)例代碼

    這篇文章主要介紹了Python運(yùn)算符重載詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • python使用opencv驅(qū)動(dòng)攝像頭的方法

    python使用opencv驅(qū)動(dòng)攝像頭的方法

    今天小編就為大家分享一篇python使用opencv驅(qū)動(dòng)攝像頭的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08

最新評(píng)論