Python中的文件讀寫

Python內置了一個open()方法,用於對文件進行讀寫操做。使用open()方法操做文件能夠分三步走,一是打開文件,二是操做文件,三是關閉文件。this

open()方法的返回值是一個file對象,能夠將它賦值給一個變量。其基本語法格式爲:編碼

f = open(filename,mode)設計

PS:Python中,全部具備read和write方法的對象,均可以概括爲file類型。而全部的file類型對象均可以使用open方法打開,close方法結束和被with上下文管理器管理。這是Python的設計哲學之一。視頻

filename:一個包含了你要訪問的文件名稱的字符串值,一般是一個文件路徑。對象

mode:打開文件的模式,有不少種,默認是隻讀方式r。圖片

一個簡單的例子:字符串

打開一個文件

f = open("/tmp/foo.txt","w")it

f.write("Python very nice")class

關閉打開的文件

f.close()test

####打開模式:

r 只讀 默認模式,若是文件不存在就報錯,存在就正常讀取。

w 只寫 若文件不存在,新建文件而後寫入;若是存在,先清空內容再寫入

a 追加 若文件不存在,新建文件,而後寫入;若是存在,在文件最後追加寫入。

x 新建 若是文件存在則報錯,不然就新建文件,而後寫入內容

b 二進制模式

  • 讀寫模式

一 b模式:

二進制模式,一般用來讀取圖片視頻等二進制文件。注意,它在讀寫的時候是以bytes類型讀寫的,所以得到的是一個bytes對象而不是字符串。在這個讀寫過程當中,須要本身指定編碼格式。在使用帶b的模式時必定要注意傳入的數據類型,確保爲bytes類型。

s = ‘this is test’

b = bytes(s,encoding=「utf—8」)

f = open(‘test.txt’,'w')

f.write(s)

這樣沒問題

s = 'this is test2'

b = bytes(s,encoding=「utf—8」)

f = open(‘test2.txt’,'wb') # 注意多個b

f.write(s)

這樣會報錯 由於它須要一個bytes類型數據,你卻給了個字符串

二 + 模式:

對於w+模式,在讀寫以前都會清空文件的內容,建議不要使用

對於a+模式,永遠只能在文件的末尾寫入,有侷限性,建議不要使用

對於r+模式,也就是讀寫模式,配合seek()和tell()方法,能夠實現更多操做

相關文章
相關標籤/搜索