python中文件打开的合法模式组合_详解python中各种文件打开模式
在python中,總的來說有三種大的模式打開文件,分別是:a, w, r
當以a模式打開時,只能寫文件,而且是在文件末尾添加內容。
當以a+模式打開時,可以寫文件,也可讀文件,可是在讀文件的時候,會發現讀出來的數據為空,是因為a+模式是在文件末尾添加內容,所以其指針已經指到了文件末尾,所以讀出來的數據就是空的。
?
1
2
3
4
5
6
7
8
9
10
11
# 在文件末尾添加數據
f= open('test.txt','a+')
f.write('test')
f.close()
# 讀出數據為空
f= open('test.txt','a+')
print(f.read())
# 讀出數據
f= open('test.txt','a+')
f.seek(0)# 將指針移動到首個字符前
print(f.read())
當以w模式打開時,只能寫文件,而且會直接將之前的數據給丟失。
當以w+模式,可讀可寫,但是如果想讀取的內容的話,只能在寫內容的時候,同時讀取其中的內容,相當于只能讀取出你剛剛寫入的內容,沒有意義
?
1
2
3
4
5
f= open('test.txt','w+')
f.write('我不會喜歡你')
f.seek(0)
print(f.read())
f.close()
當以r模式打開文件時,只能讀取文件。
當以r+模式打開文件時,可讀可寫文件。如果是讀取文件,會從首個字符開始讀取數據,如果是以該模式打開文件,就寫數據,則會從首個字符開始寫,并一個一個字符的向后面覆蓋。如果想從末尾添加內容,則可先read()然后在向其中添加數據。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 第一次寫入內容
f= open('test.txt','r+')
f.write('我不會喜歡你')# 內容為:我不會喜歡你
f.close()
# 第二次寫入
f= open('test.txt','r+')
f.write('其實我')
f.close()# 內容為: 其實我喜歡你
# 第三次寫入
f= open('test.txt','r+')
print(f.read())# 內容為: 其實我喜歡你
f.write(', I love you')
f.close()# 內容為: 其實我喜歡你, I love you
自我感覺r+模式可以多加應用。
ps:下面看下python文件打開的幾種訪問模式
訪問模式
說明
r
以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。
w
打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
a
打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
rb
以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。這是默認模式。
wb
以二進制格式打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
ab
以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
r+
打開一個文件用于讀寫。文件指針將會放在文件的開頭。
w+
打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
a+
打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用于讀寫。
rb+
以二進制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭。
wb+
以二進制格式打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
ab+
以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用于讀寫。
總結
以上所述是小編給大家介紹的python中各種文件打開模式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
原文鏈接:https://www.cnblogs.com/bao9687426/p/12209065.html
總結
以上是生活随笔為你收集整理的python中文件打开的合法模式组合_详解python中各种文件打开模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux定时结束java进程_使用zt
- 下一篇: springboot开启debug日志_