1.記事本的ansi編碼為系統本地編碼,我的是gbk
open()函式的encoding引數預設是本地編碼,也就是gbk,所以直接讀取ansi編碼的記事本檔案是木有問題的。
怎麼檢視系統本地編碼?
在cmd下輸入: chcp
從下表可以看出,936對應gbk編碼
下表列出了所有支援的**頁及其國家(地區
)或者語言:
**頁國家(
地區)或語言
437 美國
708
阿拉伯文
(asmo 708)
720
阿拉伯文
(dos)
850
多語言(
拉丁文i)
852
中歐(dos) -
斯拉夫語
(拉丁文
ii)
855
西里爾文(俄語
) 857
土耳其語
860
葡萄牙語
861
冰島語
862
希伯來文
(dos)
863
加拿大- 法語
865
日耳曼語
866
俄語-
西里爾文
(dos)
869
現代希臘語
874
泰文(windows)
932
日文(shift-jis)
936
中國-
簡體中文
(gb2312)
949 韓文
950
正體中文
(big5)
1200 unicode
1201 unicode (big-endian)
1250
中歐(windows)
1251
西里爾文
(windows)
1252
西歐(windows)
1253
希臘文(windows)
1254
土耳其文
(windows)
1255
希伯來文
(windows)
1256
阿拉伯文
(windows)
1257
波羅的海文
(windows)
1258
越南文(windows)
20866
西里爾文
(koi8-r)
21866
西里爾文
(koi8-u)
28592
中歐(iso)
28593
拉丁文3 (iso)
28594
波羅的海文
(iso)
28595
西里爾文
(iso)
28596
阿拉伯文
(iso)
28597
希臘文(iso)
28598
希伯來文
(iso-visual)
38598
希伯來文
(iso-logical)
50000
使用者定義的
50001
自動選擇
50220
日文(jis)
50221
日文(jis-
允許乙個位元組的片假名)
50222
日文(jis-
允許乙個位元組的片假名
- so/si)
50225
韓文(iso)
50932 日文(
自動選擇)
50949 韓文(
自動選擇)
51932
日文(euc)
51949
韓文(euc)
52936
簡體中文
(hz)
65000 unicode(utf-7)
65001 unicode (utf-8)
2.如果讀取的是utf-8,我們需要在讀檔案的時候指定編碼方式:
或者在指令碼第一行加入,
#encoding="utf-8"
3. python3 裡只有unicode編碼格式的位元組物件能成為str。其他編碼格式的是bytes,如:gbk、utf-8………………
str.encode(編碼格式) --> bytes
就是從 unicode 轉換成 指定編碼格式 的bytes
bytes.decode(編碼格式) --> str
就是從 指定編碼格式的bytes 轉換成 unicode 的str
print('你好')
'你好'已經是 str了,不必轉成bytes,直接輸出就行。
Python 內建函式(Python 3 x)
1 type obj 返回變數型別 2 isinstance object,class or type or tuple 測試物件是否為指定型別的例項 4 range start,end step 返回乙個 start,end 內的 range 物件,start 預設為 0,step 預設為 1 5...
python3記憶體快取 python 3 x
我試圖通過telnet 使用控制台伺服器控制台 到cisco路由器,執行一些show命令,並將它們的輸出儲存在變數中。下面是簡單的指令碼的工作原理 在執行指令碼之前已經登入到路由器 在實際使用案例中不是很有用 import telnetlib import datetime import getpa...
Python 3 X重新載入模組
為防止兩個模組互相匯入的問題,python預設所有的模組都只匯入一次,如果需要重新匯入模組,python2.7可以直接用reload python3.x可以用下面幾種方法 方法一 基本方法 from imp import reload reload module 方法二 按照套路,可以這樣 impo...