国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

布同 Python中文問題解決方法(總結了多位前人經驗,初學者必看

2020-02-23 04:47:33
字體:
來源:轉載
供稿:網友

因為Python是自帶文檔,可以通過help函數來查詢每一個系統函數的用法解釋說明。一般來說,關鍵的使用方法和注意點在這個系統的文檔中都說的很清楚。我試圖在網上找過系統文檔的中文版的函數功能解釋,但是都沒有找到,所以我決定將就使用英文版的系統自帶的函數解釋來學習。

  如果你想進行Tkinter和wxPython編程,想要知道一般的widget的使用方法和屬性介紹,英文又不是太好的話,我推薦你,你可以去看看《Python與Tkinter編程》這本書,里面392頁到538頁的附錄B和附錄C選擇了常用的函數和近乎所有的屬性進行介紹,精彩不容錯過。

我上面提到的這個工具很快做好了。可以把沒有查詢過的函數進行查詢,并保存關鍵字key和查詢結果info,便于下次直接從列表list中翻出來看;要是發現沒有查過,則手動添加到列表list——就是這樣一個簡單的小工具。一切看上去都很順利。但是問題也來了:英文的info打開后,解釋里面有的單詞不知道含義,查完單詞之后想寫在info里面,保存之后可以下次直接從硬盤打開看。但是在英文info中輸入中文,保存過程中就出現了解碼不了的問題,也就是解碼到中文部分就彈出下面這個錯誤來:

UnicodeEncodeError: 'ascii' codec can't encode character u'/u6211' in position 61: ordinal not in range(128)

  其中的61這個位置是彈性的,就是info中加入了中文的那個位置。這個錯誤基本一直都存在,也就是當我想要把修改過后的info寫入文件的時候:

代碼如下:
fp = open('tt.txt','w')
fp.write(info.encode("UTF-8")) # 此處錯誤
fp.close()

這三行本身看上去沒有錯誤。但是就是在中間這行代碼處出現了錯誤。難道是encode的方式不對?我有嘗試了很多種編碼,如ANSI、UTF-8、SHIFT_JIS、GB2312、GBK等編碼,發現都不行。于是我就糊涂了。

現在我已經知道為什么錯誤了。問題就在于修改之后的info這個字符串變量。info中的數據是我從系統中通過help函數查到的字串(也就是原始的純英文的info)加上我手動輸入的中文得到的一個綜合的字符串。在我從系統中查詢系統文檔時,我對原始info進行了如下保存:
代碼如下:
fp = open('tt.txt','w')
fp.write(info)
fp.close()

注意,錯就錯在直接將原始info直接寫入到文件中。這樣寫之后的編碼方式大家知道是什么嗎?你打開tt.txt,查看編碼方式將會知道,其編碼方式是ANSI格式。于是錯誤就是這樣產生的:我查詢關鍵字key,將這個ANSI格式的字串info讀到控件中顯示,然后我有手動的添加了UTF-8格式的中文字符,于是通連起來形成的字符串info,就是一個混亂而具有多種編碼方式的字符串info,系統怎么write都無法只使用一種編碼方式將這個混合字串info再次寫到tt.txt中去。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新龙县| 抚顺市| 寻甸| 揭阳市| 临邑县| 宁化县| 宁津县| 宜宾县| 兰州市| 浦东新区| 淮南市| 舒兰市| 永春县| 遵义县| 宽城| 依兰县| 新化县| 班玛县| 梁河县| 嘉黎县| 楚雄市| 河北区| 洪洞县| 洞头县| 尚义县| 五原县| 黄山市| 临沭县| 应城市| 黑水县| 石狮市| 南涧| 建水县| 丰城市| 建水县| 凤山市| 阜新| 延长县| 华坪县| 浦东新区| 东山县|