讀模式
r開啟不存在的檔案會報錯、不能寫;如不指定模式則預設是r
寫模式w
開啟不存在的檔案會,會新建乙個檔案;開啟存在的檔案會先清空後覆蓋原有檔案;不能讀
追加模式
a開啟不存在的檔案會,會新建乙個檔案;不能讀
讀寫模式
r+能寫,開啟不存在的檔案會報錯
寫讀模式
w+能讀,但是讀不到內容,因為w先把檔案內容清空了
追加讀模式
a+能讀,但讀不到內容,因為檔案指標預設在最後一行,可用seek移動檔案指標位置
1. r+讀寫模式
# r+讀寫模式f=open('test.txt','r+')
res=f.write('000\n')
res1=f.read()
print(res1)
# 原test.txt內容如下:
# 123456
# 678
# 789
#print輸出讀取的內容如下:
# 6# 678
# 789
#現test.txt內容如下:
# 000
# 6# 678
# 789
##解釋說明:
#1. r+新寫入的內容會覆蓋原檔案中的內容,寫入幾個字元,則覆蓋幾個字元
#2. r+會從檔案開頭開始進行檔案讀寫,所以每次寫入時,都會從一開始(第一行)進行
#3. \n換行符相當於兩個字元
#4. r+寫完後,檔案指標會停留在新寫入的字元後面,所以在read時,只read新寫入字元後面的那些內容
#5. 綜上所述,新寫入的000\n會覆蓋原檔案中的前5個字元,且read後顯示的內容不包含新寫入的內容
2. w+寫讀模式
# w+寫讀模式f=open('test.txt','w+')
res=f.write('000\n')
res1=f.read()
print(res1)
# 原test.txt內容如下:
# 123456
# 678
# 789
#print輸出讀取的內容如下:#空,能讀,但是讀不到內容,因為w+先把檔案內容清空了
#現test.txt內容如下:
# 000
# ##解釋說明:
#1. w+會先清空然後覆蓋原檔案內容
#2. w+會先將檔案裡的所有內容都清空,所以讀不到任何內容
3. a+追加讀模式
# a+讀寫模式f=open('test.txt','a+')
res=f.write('000\n')
res1=f.read()
print(res1)
# 原test.txt內容如下:
# 123456
# 678
# 789
#print輸出讀取的內容如下:#空,能讀,但讀不到內容,因為檔案指標預設在最後一行,用seek移動檔案指標位置
#現test.txt內容如下:
# 123456
# 678
# 78900
# ##解釋說明:
#1. a+因為檔案指標預設在最後一行字元後,所以寫入新字元時,新寫入的字元會顯示在最後
#2. a+能讀,但因為檔案指標預設在最後一行,所以讀不到內容,顯示空
#3. a+可以用seek()移動檔案指標位置進行檔案的讀取
3-1:a+中seek()的運用:在讀取檔案時,可指定下標從而實現從第幾位開始讀取檔案內容;
注:只針對讀取檔案,寫檔案還是只能從最後開始寫
f=open('test.txt','a+')f.seek(5) #此處的seek不起作用,因為對寫檔案不起作用
res=f.write('hh\n')
f.seek(2) #從下標是2的字元開始讀取檔案
res1=f.read()
print(res1)
# 原test.txt內容如下:
# 123456
# 678
# 789
#print輸出讀取的內容如下:
# 3456
# 678
# 789hh
# #現test.txt內容如下:
# 123456
# 678
# 789hh
#
python檔案操作,r w a系列
檔案操作 建立檔案 asdf.txt open 開啟 file 檔案的位置 路徑 mode 操作檔案的模式 encoding 檔案編碼方式 f 檔案控制代碼 f open asdf mode r encoding utf 8 print f.read f.close 檔案操作的模式 r,w,a 重要...
python之讀寫檔案
fr open readfile.txt r fw open writefile.txt w print fr.readline print fr.tell print fr.readlines fw.write write line fw.close fr.seek 0,0 第乙個引數代表位元組數...
Python之檔案讀寫
本文介紹python語言中的對於檔案的讀寫等操作。本文使用python3 首先是對檔案的操作流程為 1.開啟檔案,得到檔案控制代碼並賦值給乙個變數 2.通過控制代碼對檔案進行操作 3.關閉檔案 對於檔案的操作就離不開open 函式 這個函式是python的io模組中的乙個內建函式 首先建議使用hel...