日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Python中文對(duì)相關(guān)文件的改編和處理

在Python中文中有很多的困難是新手的“克星”,以下文章是我們就這一問題給出的相關(guān)的解決方案,希望我們能夠從中得到一些好的方法去解決這些問題,以便更好的在計(jì)算機(jī)的運(yùn)行中靈活應(yīng)用。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、廣西網(wǎng)站維護(hù)、網(wǎng)站推廣。

import sys sys.version'2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)]'用記事本創(chuàng)建一個(gè)文件ChineseTest.py,默認(rèn)ANSI:
s = "中文"
print s

測試一下瞧瞧:

 
 
 
  1. E:\Project\Python\Test>python中文Python ChineseTest.py  
  2. File "ChineseTest.py", line 1  
  3. SyntaxError: Non-ASCII character '\xd6' in file 
    ChineseTest.py on line 1, but no encoding declared; 

偷偷地把文件編碼改成UTF-8

 
 
 
  1. E:\Project\Python\Test>python 中文ChineseTest.py  
  2. File "ChineseTest.py", line 1  
  3. SyntaxError: Non-ASCII character '\xe4' in file 
    ChineseTest.py on line 1, but no encoding declared;無濟(jì)于事。  
  4.  

既然它提供了網(wǎng)址,那就看看吧。簡單地瀏覽一下,終于知道如果文件里有非ASCII字符,需要在***行或第二行指定編碼聲明。把ChineseTest.py文件的編碼重新改為ANSI,并加上編碼聲明

 
 
 
  1. # coding=gbk 
  2. s = "中文" 
  3. print s再試一下:  
  4. E:\Project\Python\Test>python ChineseTest.py  
  5. 中文正常咯:) 

看一看它的長度

 
 
 
  1. # coding=gbk 
  2. s = "中文" 
  3. print len(s)  

s這里是str類型,所以計(jì)算的時(shí)候一個(gè)中文相當(dāng)于兩個(gè)英文字符,因此長度為4。
我們這樣寫

 
 
 
  1. # coding=gbk 
  2. s = "中文" 
  3. s1 = u"中文" 
  4. s2 = unicode(s, "gbk") #省略參數(shù)將用python中文默認(rèn)的ASCII來解碼  
  5. ss3 = s.decode("gbk") #把str轉(zhuǎn)換成unicode是decode,unicode函數(shù)
    作用與之相同  
  6. print len(s1)  
  7. print len(s2)  
  8. print len(s3)  
  9.  

)接著來看看文件的處理

建立一個(gè)文件test.txt,文件格式用ANSI,內(nèi)容為:
abc中文
用python來讀取

 
 
 
  1. # coding=gbk 
  2. print open("Test.txt").read()  
  3. 結(jié)果:abc中文  

把文件格式改成UTF-8:
結(jié)果:abc涓?枃
顯然,這里需要解碼:

 
 
 
  1. # coding=gbk 
  2. import codecs  
  3. print open("Test.txt").read().decode("utf-8")  
  4. 結(jié)果:abc中文  

上面的test.txt我是用Editplus來編輯的,但當(dāng)我用Windows自帶的記事本編輯并存成UTF-8格式時(shí),
運(yùn)行時(shí)報(bào)錯(cuò):
原來,某些軟件,如notepad,在保存一個(gè)以UTF-8編碼的文件時(shí),會(huì)在文件開始的地方插入三個(gè)不可見的字符(0xEF 0xBB 0xBF,即BOM)。
因此我們?cè)谧x取時(shí)需要自己去掉這些字符,python中文中的codecs module定義了這個(gè)常量:

 
 
 
  1. # coding=gbk 
  2. import codecs  
  3. data = open("Test.txt").read()  
  4. if data[:3] == codecs.BOM_UTF8:  
  5. datadata = data[3:]  
  6. print data.decode("utf-8")  
  7. 結(jié)果:abc中文  

(三)一點(diǎn)遺留問題

在第二部分中,我們用unicode函數(shù)和decode方法把str轉(zhuǎn)換成unicode。為什么這兩個(gè)函數(shù)的參數(shù)用"gbk"呢?
***反應(yīng)是我們的編碼聲明里用了gbk(# coding=gbk),但真是這樣?
修改一下源文件:

 
 
 
  1. # coding=utf-8  
  2. s = "中文" 
  3. print unicode(s, "utf-8")  
  4. 運(yùn)行,報(bào)錯(cuò):  
  5. Traceback (most recent call last):  
  6. File "ChineseTest.py", line 3, in  
  7. s = unicode(s, "utf-8")  
  8. UnicodeDecodeError: 'utf8' codec can't decode
     bytes in position 0-1: invalid data  

簡單地說,python中的print直接把字符串傳遞給操作系統(tǒng),所以你需要把str解碼成與操作系統(tǒng)一致的格式。Windows使用CP936(幾乎與gbk相同),所以這里可以使用gbk。
***測試:

 
 
 
  1. # coding=utf-8  
  2. s = "中文" 
  3. print unicode(s, "cp936")  
  4. 結(jié)果:中文  

【編輯推薦】

  1. Python中文字符具體應(yīng)用技巧分享
  2. Python連接數(shù)據(jù)庫兩種常用方法介紹
  3. Python流程控制關(guān)鍵字基本內(nèi)容總結(jié)
  4. Python流程控制關(guān)鍵字基本內(nèi)容總結(jié)
  5. Python文件路徑具體操作方法經(jīng)典講解

網(wǎng)站標(biāo)題:Python中文對(duì)相關(guān)文件的改編和處理
URL鏈接:http://www.dlmjj.cn/article/cdgohdo.html