文件打開模式 w+ r+ a+ 區別和辨析


w+ 打開文件並讀寫  1. 文件存在,則清空(也即寫入空); 2. 文件不存在,則創建文件 ; 3. 文件流定位到開始位置, 所以read() 會得到空。

r+  打開文件並讀寫   1. 文件存在,打開文件,文件指針定位到文件開始位置; 2. 文件不存在, 則報錯文件不存在。

a+  打開文件並讀添   1. 文件存在,打開文件,文件指針定位到文件開始位置,但不清空;2.  文件不存在,創建文件; 3. 打開后讀取時,在文件開頭位置,4. 寫入時,添加到文章末尾,並且指針位於添加后的末尾,所以再次讀取會亂碼。

另外,

1. w 打開文件寫入,也會清空文件,如果使用read(),則報錯;a 打開文件添加,數據流添加到文件末尾,而不是w模式的清空后,添加到文件末尾。

2. b可以附加到上述的字母后,形成rb, rb+, wb等等模式,針對二進制文件,比如exe, elf, jpeg格式的文件,進行文件操作; 在unix 類型的系統上,text格式與二進制的處理相同,但是非unix類型的系統上,換行格式不同,所以需要用加b模式來在指定是否是二進制。

reference:

http://man7.org/linux/man-pages/man3/fopen.3.html

http://stackoverflow.com/questions/16208206/confused-by-python-file-mode-w


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM