3 26學習筆記(字元編碼,字元與位元組,檔案操作)

2021-09-13 21:53:04 字數 2506 閱讀 4063

人識別的語言與機器識別的語言轉化的媒介 *****

重點:什麼是字元編碼

人類能識別的是字元等高階識別符號,電腦只能識別0,1組成的識別符號,要完**與機器之間的資訊交流,一定需要乙個媒介,進行兩種識別符號的轉化(兩種識別符號的對應關係),對應關係形成的結構稱之為:編碼表.

了解:編碼表的發展史

1. ascii(ascii):字母、數字、英文符號與計算機01識別符號的對應關係

思考:如何將128個字元用01完全標籤

二進位制:11111111 => 255 => 1bytes(1位元組) => 8個二進位制位

2.中國:研究漢字與計算機01識別符號的對應關係:gb2312 => gbk(***) => gb18030

3. 製造乙個可以完成萬國字元與計算機01識別符號的對應關係的編碼表

編碼表:unicode表

py2:ascii,沒有按萬國編碼,原因py2要誕生先有萬國編碼

py3: utf-8, 採用萬國編碼來解釋文字內容

思考:unicode與utf-8什麼關係

unicode:用2個位元組來儲存漢字,用2個位元組來儲存英文本母,占有空間較多,讀取效率極高

utf-8:用3-6個位元組來儲存漢字,用1個位元組來儲存英文本母,占有空間較少,讀取效率低

總結:記憶體都是按unicode儲存資料,硬碟和cpu採用utf-8來訪問資料.

unicode與utf-8採用的是一張unicode編碼表,utf-8是unicode編碼表體現方式,變長儲存資料

變長優點:(大量資料都是以英文存在,所以utf-8空間更小)傳輸速度更快

字元佔多少位元組,字串轉化 ***

# unicode字串,預設字串

s1 = u'abc你好\n不好'

print(s1)

# 位元組字串

s2 = b'abc123\xb7\xb7'

print(s2)

# 原義字串: 不對字串記憶體做任何操作(eg:\n的轉化)

s3 = r'abc你好\n不好'

print(s3)

# 編碼與解碼

s = '123呵呵'

n_b = bytes(s, encoding='utf-8')

print(n_b)

b = b'123\xe5\x91\xb5\xe5\x91\xb5'

n_s = str(b, encoding='gbk')

print(n_s)

# 重點:*****

# 將u字串編碼成b字串

print(u'你好'.encode('utf-8'))

# 將b字串解碼成u字串

print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8'))

操作硬碟中的一塊區域:讀寫操作 *****

檔案:硬碟中一塊儲存空間(虛擬的檔案)

檔案操作:根據檔名來操作硬碟的那塊儲存空間,操作方式 讀read 寫write

# 一、使用檔案的三步驟

# 1、開啟檔案

# 變數名 = 檔案空間

# 檔案路徑 操作模式(讀|寫) 編碼

f = open('a.txt', 'r', encoding='utf-8')

# 2、操作檔案

# data = f.read(3) # 將所有內容讀取出來,如果設定讀取長度,按照規定長度讀取資料

# print(data)

# 一次讀取一行

# line = f.readline()

# print(line)

# line = f.readline()

# print(line)

# 按行一次性全部讀出

# lines = f.readlines()

# print(lines)

# 逐步一行一行讀取

# l =

# for line in f:

# # print(line)

# print(l)

s = set()

for line in f:

# print(line)

s.add(line)

print(s)

# 3、關閉檔案

f.close() # 釋放作業系統對檔案的持有,變數f還被應用程式持有

# del f # 系統自動**

print(f)

# 二、模式:w

'''主模式:r:讀 | w:寫 | a:追加

從模式:b:按位元組操作 | t:按字元操作 | +:可讀可寫

了解:x:異常寫 | u:被遺棄了

'''# 基礎寫

# 檔案不存在:會新建檔案,再操作檔案

# 檔案存在:先清空檔案,再操作檔案

w = open('b.txt', 'w', encoding='utf-8')

w.write('456')

w.close()

print('end')

05(字元 字元編碼 字符集)

一 字元 各種文字和符號的總稱。二 字元編碼 即計算機對各種字元,在計算機中的一種二進位制儲存代號 三 字符集 即多個字元的集合,同一字元在不同字符集中的二進位制儲存代號是不同的。四 常用設定 1 修改字符集 set names 字符集 2 檢視系統字符集設定 show variables like...

字元編碼 字元編碼的奧秘

字元編碼相信是每個程式設計師的噩夢,只要是有中文的地方,總是會遇到各種編碼的問題,並且這種問題還非常難纏,尤其在linux上,因為上面很多軟體都是針對 英語國家開發的,是不會考慮其他語種編碼問題。在遇到編碼的無數大坑之後,我決定仔細研究下編碼問題,因為這就像一道坎一直橫在你面前,每次到這裡你都會 跌...

80 20 010 原理 字元編碼 字元編碼

ascii american standard code for information interchange,美國資訊交換棕準代礙 7 bit來表示 個字元,共汁可以表示128神字元。is08859 1 b bit表示 個字元,即用乙個字苓 byte 8 bit 來表示 個字元,共汁可以表示25...