文件讀寫的一些坑

文件讀寫很重要,但是open()裏面的參數很多,書上寫的太差了  百度了下才知道真正的區別

r 打開並只讀文件,該文件必須存在。
r+ 打開並且可讀可寫文件,該文件必須存在。
w 打開並只寫文件,若文件存在則文件長度清爲0,即該文件內容會消失。若文件不存在則建立該文件。
w+ 打開可讀寫文件,若文件存在則文件長度清爲零,即該文件內容會消失。若文件不存在則建立該文件。
a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。
a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾後,即文件原先的內容會被保留。

這幾個參數加上b就變成針對二進制文件的參數,其他都是一樣的,所以如果文件存在了,那麼就用r,不存在就用w的,文件追加用a,現實中建議判斷下該路徑下有沒有這個文件夾,記得sys庫裏是有這個函數的。如果自己做點軟件什麼的,就先建好放一個空的在裏面,到時候全部統一用r+,省的節外生枝。


另外有一個很重要的點,在文件讀寫的時候,我們要把每個字符當成一個盒子,使用r+的時候,會直接默認在第一個格子裏自己替換掉原來的字符,比如我寫了a0a0a0a0a0,如果我r+輸入b1就會變成b1a0a0a0a0,還有,如果輸入中文字,會佔用兩個字符格子。如輸入一個 “湖”字  ,就會變成   湖a0a0a0a0。而且轉義字符\n也和中文一樣佔兩格。但是,詭異的是讀取的時候中文和英文還有標點符號全部一視同仁。。。。都算1個

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章