python3的txt文件讀寫

如今我通常都是直接用with open比較保險:函數

with open("test.txt","r","utf-8") as f:spa

# 爲a+模式時,由於爲追加模式,指針已經移到文尾,讀出來的是一個空字符串。ftext指針

= f.read()# 一次性讀所有成一個字符串ftextlist = f.readlines()# 也是一次性讀所有,但每一行做爲一個子句存入一個列表blog

 

w新建只寫,w+新建讀寫,兩者都會將文件內容清零utf-8

r讀打開,r+讀寫打開字符串

 

**w+,r+與a+區別:it

r+:可讀可寫,若文件不存在,報錯, 進行了覆蓋寫;io

w+: 可讀可寫,若文件不存在,建立,進行了清空寫;class

a+:可讀可寫但光標在最後面(而後讀到最後面,因此讀到空字符串),若文件不存在,建立,進行了追加寫;test

 

下圖爲r+模式下的覆蓋寫


 

 

不可讀的打開方式w和a

若不存在會建立新文件的打開方式:a,a+,w,w+

 

 

a 模式不能用來讀,即便用f.read()等會報錯。

 

而後記一下下面幾種方法:

F.read([size]) #size爲讀取的長度,以byte爲單位 
F.readline([size]) 
#讀一行,若是定義了size,有可能返回的只是一行的一部分 
F.readlines([size]) 
#把文件每一行做爲一個list的一個成員,並返回這個list。其實它的內部是經過循環調用readline()來實現的。若是提供size參數,size是表示讀取內容的總長,也就是說可能只讀到文件的一部分。


F.write(str)   # 寫入一句,要換行的話能夠加上"\n"
#把str寫到文件中,write()並不會在str後加上一個換行符 
F.writelines(seq)   # 寫入多行
#把seq的內容所有寫到文件中。這個函數也只是忠實地寫入,不會在每行後面加上任何東西。

 

 另:調用seek方法能夠把指針指向想要的位置:如 f.seek(0)  #指向開頭

相關文章
相關標籤/搜索