python字符串格式和編碼與解碼問題
阿新 • • 發佈:2018-03-07
連接 hello 列表 enc nbsp utf 而不是 取數據 無符號
1 %c 轉換成字符(ASCII碼值,長度為一的字符串) 2 3 %r 有線使用repr()函數進行字符串轉換 4 5 %s 有線使用str()函數進行字符串轉換 6 7 %d or %i 轉換成有符號十進制數 8 9 %u 轉換成無符號十進制數 10 11 %o 轉換成無符號八進制數 12 13 %x %X 轉換成無符號十六進制數(x/X代表大小寫) 14 15 %e % E轉換成科學計數法 16 17 %f %F 轉換成浮點型 18 19 quest="what‘s your quest?" 20 21 ‘:‘ . join(quest.split()) #"what‘s:your:quest?"
列表的extend()方法是把新列表添加到原有列表裏而不是像連接操作那樣新建一個列表
Unicode支持多種編碼格式,例如ASCII,ISO8859-1/Latin-1,UTF-8,UTF-16等,每當向一個文件寫入字符串的時候,必須定義一個編碼(encoding參數)用於對應的Unicode內容轉換成定義的格式,python中Unicode字符串的 encode()函數接受字符串中字符為參數輸出指定的編碼格式內容。
寫Unicode字符串到磁盤上時要用指定的編碼器給他“編碼”,從該文件讀取數據時需“解碼”該文件,使之成為相應的Unicode字符串對象.
1 file="unicode.txt" 2 3 hello_out=u"Hello world\n" #unicode編碼的字符串 4 5 bytes_out=hello_out.encode(‘utf-8‘) #寫進文件前將其編碼成utf-8編碼(二進制流形式) 6 7 print(bytes_out) #b‘Hello world\n‘ 8 9 f=open(file,"wb") #二進制流形式讀取文件,不能直接字符串形式讀取 10 # 因為後面寫入utf-8編碼後字符串(二進制流)需要以二進制方式打開文件 11 12 f.write(bytes_out)13 f.close() 14 15 with open(file,‘rb‘) as f: 16 bytes_in=f.read() 17 18 hello_in=bytes_in.decode(‘utf-8‘) 19 #從文件讀取數據時需要 解碼該文件 20 21 print(hello_in)
python字符串格式和編碼與解碼問題