檔案的操作模式 x模式和b模式

2022-08-16 03:24:16 字數 2120 閱讀 4551

# 演示1:

with open('a.txt',mode='x',encoding='utf-8') as f:

pass # =》 增加新空檔案'a.txt'

# 演示2:

with open('c.txt',mode='x',encoding='utf-8') as f:

f.read() # =》 增加新空檔案'c.txt',報錯

# 演示3:

with open('d.txt',mode='x',encoding='utf-8') as f:

f.write('哈哈哈\n') # =》 增加新檔案'd.txt'內容為'哈哈哈'

t模式:

b模式:(binary模式)with open(r'愛nmlgb的愛情.mp4',mode='rt') as f:

f.read() # 硬碟的二進位制讀入記憶體-》t模式會將讀入記憶體的內容進行decode解碼操作

# 演示1:

res=f.read() # 硬碟的二進位制讀入記憶體—>b模式下,不做任何轉換,直接讀入記憶體

print(res) # bytes型別—》當成二進位制

print(type(res))

# 演示2:

with open(r'd.txt',mode='rb') as f:

res=f.read() # utf-8的二進位制

print(res,type(res))

print(res.decode('utf-8'))

# 演示3:

with open(r'd.txt',mode='rt',encoding='utf-8') as f:

res=f.read() # utf-8的二進位制->unicode

print(res)

# 演示4:

with open(r'e.txt',mode='wb') as f:

f.write('你好hello'.encode('gbk'))

# 演示5:

with open(r'f.txt',mode='wb') as f:

f.write('你好hello'.encode('utf-8'))

f.write('哈哈哈'.encode('gbk'))

src_file=input('原始檔路徑》: ').strip()

dst_file=input('原始檔路徑》: ').strip()

with open(r'{}'.format(src_file),mode='rb') as f1,\

open(r'{}'.format(dst_file),mode='wb') as f2:

# res=f1.read() # 記憶體占用過大

# f2.write(res)

for line in f1:

f2.write(line)

# 方式一:自己控制每次讀取的資料的資料量(while迴圈)

print(len(res))

# 方式二:以行為單位讀,當一行內容過長時會導致一次性讀入內容的資料量過大

# t模式:

with open(r'g.txt',mode='rt',encoding='utf-8') as f:

for line in f:

print(len(line),line)

# b模式讀文字:

檔案處理的b模式

b代表位元組bytes模式即位元組模式。以b模式讀取檔案時不能指定encoding,因為已近要求以位元組的模式開啟,但可以在開啟並讀取資料後解碼。字串通過編碼變為bytes,bytes通過解碼變為字串。轉為bytes的兩種方式 a bytes 被轉內容 encoding utf8 b 被轉內容 en...

檔案操作模式

w open 1.txt w encoding utf 8 w 沒有檔案新建檔案,有檔案就清空檔案 w.write 000 n w.flush 在寫入大量資料,要及時處理記憶體空間,不然記憶體可能溢位導致資料丟失 w.write 111 n w.flush 最後一次flush 操作可以省略 w.wr...

python檔案處理b模式

執行環境 windows python3.5 1 rb模式,從檔案中讀取內容,得到的是bytes型別 因為我們使用的是b模式,所以在open函式中不能指定編碼格式,所以列印出來的格式的二進位制的格式,而我們需要得到str型別 這裡我們講一下,一種簡便方法,來檢視檔案的編碼格式。雙擊右下角是可以更改編...