python 文件操作讀、寫、追加的區別
阿新 • • 發佈:2018-02-11
創建 測試文件 表示 int table clas 文件 擦除 不可 打開文件的常用模式有:
- r ,只讀模式【默認】
- w,只寫模式【不可讀;不存在則創建;存在則清空內容;】
- a, 追加模式【可讀; 不存在則創建;存在則只追加內容;】
"+" 表示可以同時讀寫某個文件
- r+, 讀寫【可讀,可寫】【可理解為先讀後寫,不擦除原文件內容,指針在0】
- w+,寫讀【可讀,可寫】【可理解為先寫後讀,擦除原文件內容,指針在0】
- a+, 寫讀【可讀,可寫】【不擦除原文件內容,但指針直接到最後,讀取原內容先重置指針】
模式 | 可做操作 | 若文件不存在 | 是否覆蓋 | 指針位置 |
---|---|---|---|---|
r | 只能讀 | 報錯 | - | 0 |
r+ | 可讀可寫 | 報錯 | 否 | 0 |
w | 只能寫 | 創建 | 是 | 0 |
w+ | 可寫可讀 | 創建 | 是 | 0 |
a | 只能寫 | 創建 | 否,追加寫 | 最後 |
a+ | 可讀可寫 | 創建 | 否,追加寫 | 最後 |
可以作個測試文件,修改下打開模式,然後輸出看下指針區別
f=open(‘I:\\python\\test\\text.txt‘,‘r+‘)
print(‘指針在:‘,f.tell())
lines=f.read()
if f.writable():
f.write(‘nono\n‘)
else:
print("此模式不可寫")
print(‘指針在:‘,f.tell())
f.close()
a+模式下,雖然能讀取,但指針已到最後,直接read,不會出內容,可以用seek()重置指針
f=open(‘I:\\python\\test\\text.txt‘,‘a+‘)
print(‘指針在:‘,f.tell())
lines=f.read()
print(‘文件內容是:‘,lines) #輸出為空
print(‘seek 0‘)
f.seek(0)
print(‘指針在:‘,f.tell())
lines=f.read()
print(‘文件內容是:‘,lines)
if f.writable():
f.write(‘nono\n‘)
else:
print("此模式不可寫")
print(‘指針在:‘,f.tell())
f.close()
python 文件操作讀、寫、追加的區別