python操作檔案

來源:互聯網
上載者:User

標籤:不用   寫入   with   列操作   自己   rip   file   方法   技術分享   

1,python讀取檔案

 

2,python寫檔案

 

3,python操作檔案的常用方法

 

1,python讀取普通檔案(檔案名稱為text.txt)

f = open(‘test.txt‘,‘r‘)data = f.read()print data

f.close()

  

這樣就能完成檔案的讀取。預設情況下開啟檔案是讀的,所以如果你是讀取檔案,可以不用寫‘r‘,當然這裡可以寫成mode=‘r‘.

考慮到如果檔案是非常大的話,比如1個G的檔案,如果你直接使用read方法。這樣會非常佔用伺服器的記憶體,這樣就不太好。所以這個時候就可以考慮xreadlines。它不是一次性將內容載入的記憶體中。

只有等你使用到具體的行,才會載入的記憶體中。這與前面的range和xrange的原理是樣的。於是乎代碼更改如下:

f = open(‘test.txt‘,‘r‘)data = f.read()print data

f.close()

這裡的open其實是可以用file來代替的,意思是一樣的。從上面的代碼發現,開啟檔案後經過一系列操作需要f.close()將檔案關閉。關閉的原因是:如果不關閉檔案的話,就會佔用系統的描述符,而作業系統的描述符是有限制的。當然,python的回收機制也是處理這個問題。但是畢竟自動關閉是最佳的選擇。但是每次f.close比較麻煩,所以引用with open的方式,它會自動幫我們執行f.close()函數。

with open(‘test.txt‘,‘r‘) as f:  for line in f.xreadliens():    print line.strip()

  

 

上述的操作都是針對普通檔案的操作,如果需要操作二進位檔案的話,操作檔案的mode需要改為‘rb’或者‘wb’。具體可以參考如:

 

 2,python寫檔案

with open(‘test.txt‘,‘w‘) as f:  f.write(‘this is test‘)

  

這樣就完成基本的檔案寫操作,但是我們這裡的模式是w,那麼意味著原先的內容都被清空了,在清空檔案內容的前提條件下,新增加的內容。

如果你不想要原檔案的內容被清空,那麼你就需要將模式改為追加模式,即‘a‘.

with open (‘test.txt‘,‘a‘) as f:  f.write(‘this is test‘)

  

 

3,python操作檔案的常用方法

讀模式:

read()  一次性將內容全部讀取出來

 

readline()  讀取檔案的一行,比如開啟檔案後,執行f.readline()則表示讀取檔案的第一行,再次操作,讀取檔案的第二行

 

readlines()  讀取檔案的所有行,以列表的形式返回

 

xreadlines()  讀取檔案的行,返回對象,即產生器,需要使用for迴圈遍曆

 

next()  讀取檔案的下一行

 

seek()  指定檔案指標跳到那個位置,一般用於讓指標跳到起始行開頭的位置。即f.seek(0)

 

tell()  返回指標所在的位置

 

 

寫入模式:

wirte()  將內容一次性寫入到檔案中

 

writelines()   檔案寫入一個序列字串列表,如果需要換行則要自己加入每行的分行符號

 

flush()  將修改重新整理到磁碟上,一般情況下,你這邊f.write寫入內容。但是你沒有f.close時,你寫入檔案的內容是暫時的緩衝在記憶體的。除非你f.close()才會將檔案刷到磁碟中,或者你使用f.flush()這個命令將內容重新整理到磁碟上

 

close()  關閉檔案

 

python操作檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.