1樓:teeson
w+是開啟後,先清空檔案內容,成為空檔案,然後對該空檔案具有讀寫許可權
r+是開啟後,可以讀取檔案內容,儲存原有內容,追加新內容
2樓:BoyDZQ
r:表示檔案只可讀,此時向檔案中寫入內容會報錯:io.UnsupportedOperation: not writable;
w:表示檔案只可寫,此時讀取檔案內容會報錯:io.UnsupportedOperation: not readable;
r+:表示檔案既可讀,也可寫,如果檔案不存在則報錯:FileNotFoundError;如果檔案存在,每次開啟檔案時,從檔案起始位置開始讀寫,寫的時候會覆蓋原有內容,未覆蓋部分保留;
w+:表示檔案既可讀,也可寫,如果檔案不存在,不會報錯,而是自動建立乙個檔案;如果檔案存在,每次開啟檔案時,會清空原有內容。
下面通過幾個例子詳細說明,首先準備兩個檔案 text_1.txt 和 text_2.txt,檔案內容一樣,都是「Hello,this is a test file!」
(1)讀寫乙個不存在的檔案時,w+ 與 r+ 的區別:
with
open
("text.txt"
,mode
="r+"
,encoding
="utf-8")as
fp:print(fp
.write
("test!"
))此時執行結果為:
with open("text.txt", mode="w+", encoding="utf-8") as fp:
print(fp.write("test!"))
此時執行結果為:
這裡的5表示寫入的字元數,並且在當前目錄下生成了乙個test.txt檔案。
(2)讀取乙個已存在的檔案時,w+ 與 r+ 的區別:
with
open
("text_1.txt"
,mode
="r+"
,encoding
="utf-8")as
fp:print
("r+:",fp
.read
())with
open
("text_2.txt"
,mode
="w+"
,encoding
="utf-8")as
fp:print
("w+:",fp
.read
())此時執行結果為:
通過 r+ 方式可以正常讀取檔案內容,而通過w+方式讀取的內容為空,這是因為通過w+方式開啟檔案時會清空原有檔案內容,此時開啟 text_2.txt 檔案,可發現檔案內容為空。
(3)向已有檔案中寫入內容時,w+ 與 r+ 的區別:
with
open
("text_1.txt"
,mode
="r+"
,encoding
="utf-8")as
fp:fp.
write
("Test"
)# 寫入內容fp.
seek(0
)# 回到起始位置
("r+:",fp
.read
())# 讀取內容
with
open
("text_2.txt"
,mode
="w+"
,encoding
="utf-8")as
fp:fp.
write
("Test"
)# 寫入內容fp.
seek(0
)# 回到起始位置
("w+:",fp
.read
())# 讀取內容
此時執行結果為:
r+模式寫入內容時會覆蓋原有內容,未覆蓋部分保留。w+模式會先清空原有內容,再寫入!
3樓:陳哲
這個引數決定了開啟檔案的模式:唯讀,寫入,追加等。這個引數是非強制的,預設檔案訪問模式為唯讀(r)。
with
open
('spamspam.txt'
,'w+')as
f:pass
r+ :開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。
with
open
('spamspam.txt'
,'r+')as
f:pass
Python 學習手冊
Python 關於讀寫txt的問題?
上面幾個回答說的很清楚了,不需要從頭開始讀取檔案,只需要把第一次讀取的內容儲存到乙個變數中,進行判斷就可以了。如果非要說實現從頭開始讀取的檔案的話,就先a.close 再open檔案一次唄。個人感覺比較蠢的辦法 火鍋大魔王 我想你需要的不是重新讀取 tmpFile a.readlines if tm...
高中檔案丟失?
人事檔案是中中國人事管理制度的一項重要特色,它是個人身份 學歷 資歷等方面的證據,與個人工資待遇 社會勞動保障 組織關係緊密掛鉤,具有法律效用,是記載人生軌跡的重要依據。高校學生檔案則是國家人事檔案的組成部分,是大學生在校期間的生活 學習及各種社會實踐的真實歷史記錄,是大學生就業及其今後各單位選拔 ...
python中有什麼可以將資料夾中的檔案像迴圈一樣操作(比如乙個路徑abc n,n為1,2,3 )?
黃哥 方法之一 from os import listdir from os.path import isfile,join onlyfiles f for f in listdir mypath if isfile join mypath,f 方法之二 import glob files list...