国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
你覺得python很難那只是你沒有懂而已(大圖文)


             【【W(wǎng)3Cschool】你覺得python很難,那只是你沒有懂而已!】http://toutiao.com/group/6550931721632612877/?iid=15906422033&app=explore_article&timestamp=1525362651&tt_from=copy_link&utm_source=copy_link&utm_medium=toutiao_ios&utm_campaign=client_share


在 Python 尤其是 Python2 中,編碼問題是困擾開發(fā)者尤其初學者的一大問題。什么 Unicode/UTF-8/str,又是 decode/encode 的,搞得人頭都大了。其實不然,看似龐大難懂,但是可以非常精細地定制需求。

0.Python 中的編碼

Python 中有兩個常用的由 basestring 派生出來的表示字符串的類型:str, unicode。其中,str 類似于 C 中的字符數(shù)組或者 Java 中的 byte 數(shù)組,事實上你可以將它理解為一個存儲二進制內(nèi)容的容器,str 不存儲編碼信息,果對 str 類型的字符串迭代的話,則會按照其在內(nèi)存中的字節(jié)序依次迭代,意味著如果這個字符串存儲的是多字節(jié)字符(Unicode/GBK等),則會截斷這個字符,演示如下:

而對于 unicode 類型,Python 在內(nèi)存中存儲和使用的時候是按照 UTF-8 格式,在代碼中的表示為字符串前加 u,如:

而 unicode 與 str 之間的轉(zhuǎn)換,則用到了 encode 和 deocde 方法。decode 表示將一個 (str) 字符串按照給定的編碼解析為 unicode 類型,encode 則表示將一個 unicode 字符串按照指定編碼解析為字節(jié)數(shù)組 (str):

1.文件讀寫

內(nèi)置的 open 函數(shù)打開文件時,read 方法讀取的是一個 str (私以為叫做字節(jié)數(shù)組更合適),如果讀取的是其它編碼的文字,則需要 decode 之后再做使用。

對于使用 open 函數(shù)打開文件之后的寫操作,則需要將需要寫入的字符串按照其編碼 encode 為一個 str ,如果直接寫入,則會引發(fā)如下錯誤:

除此以外,codecs 模塊也提供了一個 open 函數(shù),可以直接指定好編碼打開一個文本文件,那么讀取到的文件內(nèi)容則直接是一個 unicode 字符串。對應的指定編碼后的寫入文件,則可以直接將 unicode 寫到文件中。通過 codecs.open 可以避免很多編碼問題:

建議

對于 Python 代碼中避免遇到編碼問題,有一些小建議:

  • 字符編碼聲明:在代碼開頭聲明編碼格式

  • 使用 codecs 的 open 函數(shù)處理文本文件

  • 盡可能使用 unicode 而不是 str

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
[轉(zhuǎn)]Python的ASCII, GB2312, Unicode , UTF-8 - 海上...
python整數(shù)、字符串、字節(jié)串相互轉(zhuǎn)換 | Lixingcong
聊一聊Python2的編碼
python對json的操作總結(jié)
decode和encode
Python內(nèi)部編碼轉(zhuǎn)換
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服