Python 檔案 編碼

2021-08-30 17:56:03 字數 2272 閱讀 8477

檔案是用於儲存資料的基本單位

檔案通常用來長期儲存資料

檔案中資料是以位元組為單位進行順序儲存的

檔案的操作流程

1. 開啟檔案

2. 讀/寫檔案

3. 關閉檔案

注: 任何的作業系統,乙個應用程式同時開啟檔案的數量

有最大數限制

檔案的開啟函式

open(filename, mode='rt') 用於開啟乙個檔案,返回

此用來操作此檔案的檔案流物件,如果開啟失敗,

則會觸發oserror錯誤通知

檔案流物件的關閉方法

f.close() 關閉檔案.釋放系統資源

以十六進製制方式顯示檔案內容的命令:

$ xxd 檔名

模式字元: 't'

說明: 1. 對文字檔案的讀寫操作需要用字串(str)進行讀寫操作

2. 在讀寫過程中會自動進行編碼(encode) 和 解碼

(decode)操作

3. 以行為單位分隔,在python內部統一用'\n'作用換行符

進行分隔

各作業系統的換行符:

linux換行符: '\n'

windows換行符: '\r\n'

新的mac os換行符: '\n'

文字檔案的寫操作:

方法: f.write(x)

f.writelines(列表)

模式字串:

'w''x'

'a'

二進位制模式字元: 'b'

預設檔案中儲存的都是以位元組(byte)為單位的資料,通常人

人為的格式

對二進位制檔案的讀寫需要用字串(bytes) 或位元組

陣列(bytearray)進行操作

對於二進位制檔案讀寫方法都 需要用位元組為單位進行操作

f.read(n)

f.readline()

f.readlines()

f.write(位元組串)

f.writelines(位元組串組成的列表)

作用:

設定檔案的讀寫位置,返回新的讀寫位置

格式: f.seek(偏移量, whence=相對位置)

偏移量大於0代表向檔案末尾方向移動

小於0代表向檔案頭方向移動

相對位置:

0 代表從檔案頭開始偏移

1 代表從當前讀寫位置開始偏移

2 代表從檔案尾開始偏移

標準輸入輸出檔案:

模組名:

syssys.stdin 標準輸入檔案(預設為鍵盤)

sys.stdout 標準輸出檔案(預設為螢幕終端)

sys.stderr 標準錯誤輸出檔案(預設為螢幕終端)

注: 標準檔案不需要開啟即可以使用,也不用手動關閉

十個漢字佔多少個位元組?

國標系列:

gb18030(二位元組或四位元組編碼, 27533個字)

gbk(二位元組編碼,20013個字)

gb2313(二位元組編碼,約7千多個字)

(windows常用)

國際標準:

unicode(uncode16/unicode32)  <-> utf-8

(linux/mac os x/ ios/ android 常用)

utf-8中:

英文ascii (0x0 - 0x7f) 一位元組

(0x80 - 0x3ff) 二位元組

(0x400 - 0xffff) 三位元組(中文在此區)

python 編碼字串:

'gb2312'

'gbk'

'gb18030'

'utf-8'

'ascii'

...

如:

s = "你好"

print(s.encode('gbk'))

print(s.encode('utf-8'))

print(s.encode('ascii'))#出錯,"你好"不在ascii內

編碼注釋:

在原始檔中,第一行或第二行寫入的如下內容是編碼注釋

# -*- coding:gbk -*-

或 # -*- coding:utf-8 -*-

Python之檔案編碼

1.ascii編碼 2.utf 8編碼格式f open 檔案路徑 rb f read f.read f read decode f read.decode 該檔案的編碼方式 print f read decode 在python 2.x檔案的第一行增加以下 直譯器會以utf 8編碼來處理python...

python檔案操作編碼

gbk編解碼器無法解碼,非法的多位元組序列。如下 filename 11 0.txt with open filename as file object content file object.read words content.split num len words print num 到這裡結...

python 檔案編碼 解碼

ascii ascii碼是西歐編碼的方式,採取7位編碼,所以是2 7 128,共可以表示128個字元,包括34個字元,如換行lf,回車cr等 其餘94位為英文本母和標點符號及運算符號等。gb2321 gb2312 是對 ascii 的中文擴充套件。相容ascii。編碼規定 編碼小於127的字元與as...