關於open函式檔案開啟模式的有意思的乙個現象

2021-09-25 06:31:06 字數 728 閱讀 4530

老猿前陣子學習了檔案io,最近正在回顧及進行各種驗證和總結,老猿在對檔案進行開啟後的返回值檢查屬性時,發現檔案開啟返回的檔案物件的讀寫模式與開啟檔案的模式並不完全相同,如下案例:

fp1 = open(r'c:\temp\test.txt')

fp2 = open(r'c:\temp\test.txt','r+')

fp3 = open(r'c:\temp\test.txt','r+b')

fp4 = open(r'c:\temp\test1.txt','w+')

fp5 = open(r'c:\temp\test2.txt','a+')

fp6 = open(r'c:\temp\test3.txt','wb')

fp7 = open(r'c:\temp\test4.txt','a+b')

fp8 = open(r'c:\temp\test5.txt','w+b')

l=fp1.mode,fp2.mode,fp3.mode,fp4.mode,fp5.mode,fp6.mode,fp7.mode,fp8.mode

print(l)

輸出結果是:

('r', 'r+', 'rb+', 'w+', 'a+', 'wb', 'ab+', 'rb+')
可以看到,以上檔案開啟模式中,在檔案開啟後保持引數要求的模式不變,但w+b模式卻變成了rb+模式,但實際上如果檔案存在開啟後還是被清空。

open函式不同模式開啟檔案的方法

open函式open函式不同模式開啟檔案的方法大全 r以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。rb以二進位制格式開啟乙個檔案用於唯讀。檔案指標將會放在檔案的開頭。這是預設模式。r 開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。rb 以二進位制格式開啟乙個檔案用於讀寫。檔案...

C語言 開啟檔案open函式

函式說明 引數mode 則有下列數種組合,只有在建立新檔案時才會生效,此外真正建檔案時的許可權會受到umask 值所影響,因此該檔案許可權應該為 mode umaks s irwxu00700 許可權,代表該檔案所有者具有可讀 可寫及可執行的許可權.s irusr 或s iread,00400 許可...

關於open的模式

w 寫方式 a 追加模式開啟 從eof開始,必要時建立新檔案 r 以讀寫模式開啟 w 以讀寫模式開啟 a 以讀寫模式開啟 rb 以二進位制讀模式開啟 wb 以二進位制寫模式開啟 參見 w ab 以二進位制追加模式開啟 參見 a rb 以二進位制讀寫模式開啟 參見 r wb 以二進位制讀寫模式開啟 參...