亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

詳解Python中的文件操作

瀏覽:2日期:2022-06-29 17:53:40
一:文件的打開模式

了解過字符編碼都知道,文件都是以某一種標準編碼成二進制存在硬盤里的,在文件的默認打開模式下f = open(’a.txt’,’rt’,encoding=’utf-8’) 其中的t表示是以文本模式打開文件,在應用程序給操作系統(tǒng)發(fā)送數(shù)據(jù)請求后,操作系統(tǒng)在硬盤讀取二進制編碼,然后返還給應用程序,通過open方法,將編碼解碼成我們看到的字符;如果是以b模式打開文件的話,open方法不會對操作系統(tǒng)返回的二進制數(shù)據(jù)作處理,而是直接打印。

f = open(’a.txt’,’rt’,encoding=’utf-8’)

其中的t表示是以文本模式打開文件,在應用程序給操作系統(tǒng)發(fā)送數(shù)據(jù)請求后,操作系統(tǒng)在硬盤讀取二進制編碼,然后返還給應用程序,通過open方法,將編碼解碼成我們看到的字符,那么在b模式下打開文件,操作系統(tǒng)返還直接是一串二進制數(shù)字

文件的三種打開方式:

只讀模式:‘r’

只寫方式:’w’

追加模式:’a’

以字節(jié)模式打開文件的話,需要注意:

一定要寫上‘b’,只能以rb,wb,ab這種形式打開文件,不能省略‘b’。

f = open(’a.txt’,’rb’) f = open(’a.txt’,’wb’) f = open(’a.txt’,’ab’) #錯誤寫法f = open(’a.txt’,’r’) #未注明以b模式打開,這種寫法是默認文本模式打開 f = open(’a.txt’,’rb’,encode = ’utf-8’) #b模式打開,不能傳入編碼方式

字節(jié)模式下讀寫都是以bytes為單位的。如果想寫入字符,需要編碼后以字節(jié)類型寫入

f = open(’a.txt’,’wb’)f.write(’你哈’.encode(’utf-8’))

注意:對于非文本文件,我們只能使用字節(jié)模式,'b'表示以字節(jié)的方式操作(而所有文件也都是以字節(jié)的形式存儲的,使用這種模式無需考慮文本文件的字符編碼、圖片文件的jgp格式、視頻文件的avi格式)

二:字節(jié)模式下的操作

字節(jié)模式打開非文本文件

with open(’1.jpg’, ’rb’) as f: # 以只讀模式打開文件 data = f.read() # 讀取文件全部內(nèi)容,并賦值給變量dataprint(data) # 打印變量,我們得到是b’xffxd8xffxe0x00這種形式的結(jié)果print(type(data))# 變量的類型<class ’bytes’>with open(’1.jpg’,’rb’) as f: data = f.read()print(type(data))print(data.decode(’utf-8’)) #將讀取的編碼以utf-8標準解碼 #圖片文件編碼方式不是utf-8,所以不能解碼,程序報錯

以字節(jié)模式打開文本文件:

with open(’db.txt’, ’rb’) as f: data = f.read()print(data) # 打印出來的是一串二進制數(shù)print(data.decode(’utf-8’)) # 把二進制數(shù)用utf-8標準解碼print(type(data)) # 可以在屏幕上顯示人類能看懂的字符了with open(’db.txt’, ’wb’) as f: f.write(’你好啊n’.encode(’utf -8’))

在以字節(jié)打開文件時,文件的操作都要基于二進制進行了.

三:文件的修改

文件的修改并不是我們直觀感受上的擦除重新寫上,基于硬盤的特性,任何文件的修改操作都是新內(nèi)容對原內(nèi)容的覆蓋。修改的概念存在于內(nèi)存中,當應用程序啟動,請求操作系統(tǒng)從硬盤中讀取數(shù)據(jù),讀取的數(shù)據(jù)運行在內(nèi)存上,這時,我們在應用程序上的操作修改類內(nèi)存上的數(shù)據(jù)內(nèi)容,但是并不影響到硬盤的數(shù)據(jù)。當我們點擊保存時,新的數(shù)據(jù)會將原數(shù)據(jù)覆蓋。這時,才完成了文件的修改。

修改文件方式一:1:先把文件內(nèi)容全部讀取2:在內(nèi)存中修改3:把修改好的內(nèi)容覆蓋寫入到硬盤上

with open('db.txt', 'r', encoding='utf-8') as f: # 打開文件 data = f.read()# 讀取文件全部內(nèi)容 data = data.replace('你好啊:', '======') # 修改文件內(nèi)容 with open('db.txt', 'w', encoding='utf-8') as f: # 以‘w’模式打開,清空文件 f.write(data) # 把修改后的數(shù)據(jù)寫入

修改文件方式二:

1:以讀的方式打開源文件2:以寫的方式打開一個新文件

import os # 引入os模塊with open(’a.txt’, ’r’, encoding=’utf-8’) as read_f, open(’new.txt’, ’w’, encoding=’utf-8’) as new_f: # 同時打開文件 for line in read_f: # 循環(huán)原文件內(nèi)容 if ’你好啊’ in line: line = line.replace(’你好啊’, ’哈哈哈哈哈哈’) # 替換源文件內(nèi)容 new_f.write(line)# 把原文件循環(huán)出來的內(nèi)容寫入到新文件中, os.remove(’a.txt’) # 調(diào)用OS模塊功能刪除原文件os.rename(’new.txt’, ’a.txt’) # 重命名新文件

以上就是詳解Python中的文件操作的詳細內(nèi)容,更多關(guān)于python 文件操作的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 成人影院久久久久久影院 | 国产成人香蕉久久久久 | 国内免费视频成人精品 | 99精彩视频在线观看 | 一级特黄爽大片刺激 | 久久久久性 | 国产综合精品久久久久成人影 | 在线观看香蕉免费啪在线观看 | a一级毛片录像带 录像片 | 国产精品李雅在线观看 | 欧美aaaaaaaaaa | 欧美日一级片 | 久草在线新视频 | 国产在线精品福利一区二区三区 | 国产综合久久久久影院 | 欧美一级毛片大片免费播放 | a级性生活视频 | 国产女人毛片 | 成人永久免费视频网站在线观看 | 国产精品久久一区二区三区 | 国产成人综合在线 | 中文字幕在线视频网站 | 天天摸天天爽视频69视频 | 大美女香蕉丽人视频网站 | 亚洲国产精品一区二区九九 | 亚欧人成精品免费观看 | 亚洲日本va | 一区二区不卡视频在线观看 | 成人一级大片 | 久揄揄鲁一二三四区高清在线 | 高清国产一区 | 国产精品久久久久国产精品三级 | 日韩中文字幕视频在线 | 一级女毛片| 欧美中文字幕在线视频 | 日韩中文字幕精品一区在线 | 国内久久精品 | 欧美一区二区精品系列在线观看 | 成人午夜免费视频 | 国产一级特黄a大片99 | 一级毛片免费在线观看网站 |