Python學習筆記(八)

2021-09-26 03:09:54 字數 3359 閱讀 4155

二、字串

1、概述

pickle模組為python物件結構的序列化和反序列化實現了乙個基本但強大的演算法。 「pickling」是將python物件層次結構轉換為位元組流的過程,「unpickling」是相反的操作,即位元組流轉換回物件層次結構。

2、常用方法

(1)序列化為字串

pickle.dumps(obj) 將物件序列化為字串

pickle.loads(str) 將字串反序列化為物件

import pickle

p =# 物件序列化為字串

str_p = pickle.dumps(p)

print

(str_p)

# 字串反序列化為物件

p_tmp = pickle.loads(str_p)

print

(p_tmp)

(2)序列化到檔案

pickle.dump(obj, file) 將物件序列化到檔案

pickle.load(file) 將檔案反序列化為物件

import pickle

p =# 物件序列化到檔案

pickle.dump(p,

open

("a.txt"

,"wb"))

# 檔案反序列化為物件

p_tmp = pickle.load(

open

("a.txt"

,"rb"))

print

(p_tmp)

1、概述

shelve模組是乙個簡單的k,v將記憶體資料通過檔案持久化的模組,可以持久化任何pickle可支援的python資料格式

2、常用方法

(1)建立shelve檔案

db = shelve.open('path')

(2)序列化到檔案

db['key'] = obj

(3)序列化的物件數量

len(db)

(4)刪除序列化內容

del db['key']

pickle乙個檔案只能很方便的序列乙個物件,如果需要乙個檔案序列化多個物件的話使用shelve模組,因為shelve模組是k, v型的,可以更方便乙個檔案儲存多個物件

str               字串

bytes           位元組

bytearray    位元組陣列 名稱

概述字符集

又稱為編碼字符集,

是乙個包含字元表中每乙個字元和對應的整數對映關係的集合。

碼位值乙個字元在某個字符集中的對映的值,一般是乙個整數。

字元編碼

是把乙個碼位值轉換為用於儲存和傳輸的2進製序列的方式。

編碼轉換字元為位元組形式

解碼位元組形式轉換為字元

1、ascii

儲存在乙個byte

0~127

2、latin-1

儲存在乙個byte

128~255

3、utf-8

可變位元組

0~127:使用單位元組

128~2047:雙位元組儲存

大於 2047:3~4byte

4、utf-16

2byte儲存字元(另加2byte作為標識)

5、utf-32(4byte)

1、ord():獲取字元碼值

print

(ord

('a'))

# 97

2、chr():獲取碼值對應的字元

print

(chr(97

))# a

3、str.encode(『編碼』):將特定字串編碼

s =

"abc"

print

(s.encode(

"utf8"

))

4、bytes.decode(『編碼』):將字元編碼解碼為字元文字

s =

"abc"

b = s.encode(

"utf8"

)print

(b)print

(b.decode(

"utf8"

))

1、轉化為bytes

方法1: 手動宣告 b""

方法2: 字串編碼 str.encode()

方法2: 建構函式 bytes()

2、轉換為bytearray

建構函式: bytearray('字串','字元編碼')

3、轉換為字串

bytes.decode('字元編碼')

bytearray.decode('字元編碼')

1、簡介

位元組順序標記(英語:byte-order mark,bom)是乙個有特殊含義的統一碼字元,碼點為u+feff。當以utf-16或utf-32來將ucs/統一碼字元所組成的字串編碼時,這個字元被用來標示其位元組序。經常被用於區分是否為utf編碼。

2、使用(新增或不顯示標記)

open('檔名','開啟方式',encoding="字元編碼-sig")

with

open

("a.txt"

,"w"

, encoding=

"utf-8-sig"

)as f:

f.write(

"hello world"

)with

open

("a.txt"

,"r"

, encoding=

"utf-8-sig"

)as f:

print

(f.read(

))

Python學習筆記(八)

對應第十章 如果檔案內容不是逐行輸出則會輸出列表形式。try with open d pycharmprograms pi.txt as f contents f.readlines except filenotfounderror print filenotfounderror else prin...

Python學習筆記(八)異常

8異常 8.1什麼是異常 python用異常物件來表示異常情況。每乙個異常都是一些類的例項,這些例項可以被印發,並且可以用很多種方法進行捕捉並且對其進行處理,而不是讓整個程式失敗。8.2按自己的方式出錯 8.2.1raise語句 為了引發異常,可以使用乙個類 可以是exception的子類 或者例項...

Python學習筆記(八)異常

life is short,you need python bruce eckel environment 程式執行過程中可能碰到各種各樣的異常,如果未預設處理方式,程式將中斷執行。這裡記錄一些 python 中異常處理的內容。python 所有內建異常類參考python官方文件的內容,中文內容總結...