python中可以使用seek()移動文件指針到指定位置,然后讀/寫。通常配合 r+ 、w+、a+ 模式,在此三種模式下,seek指針移動只能從頭開始移動,即seek(x,0) 。
模式 | 默認 | 寫方式 | 與seek()配合---寫 | 與seek()配合---讀 |
r+ | 文件指針在文件頭部,即seek(0) | 覆蓋 | f = open('test.txt','r+',encoding='utf-8') f.write('aaa') #移動文件指針到指定位置,再寫 |
f = open('test.txt','r+',encoding='utf-8') f.read() #移動文件指針到指定位置,讀取后面的內容 |
w+ | 文件指針在文件頭部,即seek(0) | 清除 | f = open('test.txt','w+',encoding='utf-8')
f.write('aaa') #清除文件內容,移動文件指針到指定位置,再寫 |
f = open('test.txt','w+',encoding='utf-8')
f.seek(3,0)
|
a+ | 文件指針在文件尾部,即seek(0,2) | 追加 | f = open('test.txt','a+',encoding='utf-8') f.seek(3,0) f.write('aaa') #直接在文件末尾寫入,seek移動指針不起作用 |
同 r+ |
(1)seek(offset[,whence]): (2)offset--偏移量,可以是負值,代表從后向前移動; (3)whence--偏移相對位置,分別有:os.SEEK_SET(相對文件起始位置,也可用“0”表示);os.SEEK_CUR(相對文件當前位置,也可用“1”表示);os.SEEK_END(相對文件結尾位置,也可用“2”表示)。 seek(x,0):表示指針從開頭位置移動到x位置 seek(x,1):表示指針從當前位置向后移動x個位置 seek(-x,2):表示指針從文件結尾向前移動x個位置 例:file.seek(-1,2),文件指針從文件末尾向前移動一個字符,配合read相關方法/函數可讀取該字符。 |