python-文件操作


   文件操作也就讀操作和寫操作了,我們一個一個來說。。

讀文件操作

   其實和在日常我們在使用文件時是一樣的,不過讀文件還是寫文件,第一件事情就是打開文件

 fileRead = open('/test.txt' , 'r')   #r 表示打開文件的格式是讀模式

  open()是Python的內置函數,如果文件不存在會拋出異常“IOerror”

  一般情況下,小文件可以直接使用read()方法讀取,一次將文件的內容全部讀到內存中,返回的是 str 類型。

  但有時候文件內容可能會很大,如果一次性讀入內存會卡死的,這個時候就可以使用 read(size) 或者 readline()。 size 指定每次讀取的字節數。通過多次循環獲取文件的全部內容。

 for line in fileRead.readlines(): #逐行讀取 
           print(line)

  最后,一定不要忘記關閉文件。切記切記切記!

 fileRead.close()

寫文件操作

  類似讀模式,寫文件打開文件時也需要定義為w(寫)模式,但是此時的打開文件並不是真正意義上的打開,而是創建一個新的文件,如果之前存在此文件名,原文件將被現文件覆蓋。

loginFile = open("login.txt", "w")  
loginFile.write("寫入第一行\n")
loginFile.write("寫入第二行\n")
loginFile.close()

  此時打開login.txt文件,發現以前的內容已沒有,內容如下:

寫入第一行
寫入第二行

  那有人問了,我怎么更新文件。當然,Python提供的模式還有一個叫追加(a)模式。此模式下write()的內容都會更新原有內容之后。  

loginFile = open("login.txt", "a")  
loginFile.write("寫入第3行\n")
loginFile.close()

  此時再打開login文件你就會看到:

寫入第一行
寫入第二行
寫入第3行

  但是,如果要修改文件我該怎么辦了,有沒有這種模式呢。呵呵。。當然--沒有的。那么怎么修改呢,那只能先修改到一個中間文件中,然后再寫回來了。代碼如下:  

 1 loginFile = open("login.txt", "r")   # 打開原文件  2 loginFileUpdate = open("loginUpdate.txt", "w") #創建一個中間文件  3 for line in loginFile:
 4         if userName in line: #找到修改位置進行修改  5             line = 'I am newUser'
 6         loginFileUpdate.write(line)
 7 loginFile.close()
 8 loginFileUpdate.close()
 9  #將中間文件的內容回寫到原配置文件
10 loginFile = open("login.txt", "w")
11 loginFileUpdate = open("loginUpdate.txt", "r")
12 for line in loginFileUpdate:
13      loginFile.write(line)
14 loginFile.close()
15 loginFileUpdate.close()

 

不同模式打開文件的完全列表:

模式 描述
r 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。
rb 以二進制格式打開一個文件用於只讀。文件指針將會放在文件的開頭。這是默認模式。
r+ 打開一個文件用於讀寫。文件指針將會放在文件的開頭。
rb+ 以二進制格式打開一個文件用於讀寫。文件指針將會放在文件的開頭。
w 打開一個文件只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
wb 以二進制格式打開一個文件只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
w+ 打開一個文件用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
wb+ 以二進制格式打開一個文件用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
a 打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
ab 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
a+ 打開一個文件用於讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用於讀寫。
ab+ 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用於讀寫。

 

file對象相關的所有屬性的列表:

屬性 描述
file.closed 返回true如果文件已被關閉,否則返回false。
file.mode 返回被打開文件的訪問模式。
file.name 返回文件的名稱。
file.softspace 如果用print輸出后,必須跟一個空格符,則返回false。否則返回true。

 

 

  


免責聲明!

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



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