python學習---檔案的基本操作

來源:互聯網
上載者:User

標籤:愛情   false   高效   控制代碼   cat   參數   迴圈   編碼   ada   

對檔案的操作分三步:

        1、開啟檔案擷取檔案的控制代碼,控制代碼就理解為這個檔案

        2、通過檔案控制代碼操作檔案

        3、關閉檔案。

檔案基本操作:

  •         f = open(‘file.txt‘,‘r‘) #以唯讀方式開啟一個檔案,擷取檔案控制代碼,如果是讀的話,r可以不寫,預設就是唯讀,
  •         在python2中還有file方法可以開啟檔案,python3中file方法已經沒有了,只有open        
  •         frist_line = f.readline()#擷取檔案的第一行內容,返回的是一個list
  •         print(frist_line)#列印第一行
  •         res = f.read()#擷取除了第一行剩下的所有檔案內容
  •         print(res)
  •         f.close()#關閉檔案

開啟檔案時,需要指定檔案路徑和以何等方式開啟檔案,開啟後,即可擷取該檔案控制代碼,後面通過此檔案控制代碼對該檔案操作,開啟檔案的模式有:

  •       r,唯讀模式(預設)。
  •   w,唯寫模式。【不可讀;不存在則建立;存在則刪除內容;】
  •   a,追加模式。【不可讀; 不存在則建立;存在則只追加內容;】

   "+" 表示可以同時讀寫某個檔案

  •       r+,【可讀、可寫;可追加,如果開啟的檔案不存在的話,會報錯】
  •       w+,【寫讀模式,使用w+的話,已經存在的檔案內容會被清空,可以讀到已經寫的檔案內容】
  •       a+,【追加讀寫入模式,不存在則建立;存在則只追加內容;】

  檔案操作方法:

  •    f = open(‘file.txt‘,‘r+‘,encoding=‘utf-8‘)#encoding參數可以指定檔案的編碼
  •    f.readable()#判斷檔案是否可讀
  •    fr.writable()#判斷檔案是否可寫
  •    fr.encoding#列印檔案的編碼
  •    f.readline()#讀一行
  •    f.read()#讀取所有內容,大檔案時不要用,因為會把檔案內容都讀到記憶體中,記憶體不夠的話,會把記憶體撐爆
  •    f.readlines()#讀取所有檔案內容,返回一個list,元素是每行的資料,大檔案時不要用,因為會把檔案內容都讀到記憶體中,記憶體不夠的話,會把記憶體撐爆
  •   f.write(‘愛情認證‘)#寫入內容
  •   f.writelines([‘愛情認證‘,‘孫燕姿‘])#將一個列表寫入檔案中
  •    f.tell()#擷取當前檔案的指標指向
  •    f.seek(0)#把當前檔案指標指向哪
  •    f.fulsh()#寫入檔案後,立即從記憶體中把資料寫到磁碟中
  •    f.truncate()#清空檔案內容,從指標指向的位置開始清理
  •    f.close()  #關閉檔案

大檔案時,高效的操作方法:

  當操作大檔案時,使用read()和readlines()方法時,會把檔案所有內容先讀到記憶體中,這樣記憶體一多,就會非常卡。解決辦法是,讀取一行操作一行,這樣讀過的內容就從記憶體釋放了。

  • f = open(‘file.txt‘)
  • for line in f:
  •     print(line)

with使用:

    在操作檔案的時候,經常忘了關閉檔案,這樣的就可以使用with,它會在使用完這個檔案控制代碼之後,自動關閉該檔案,使用方式如下:

  •     with open(‘file.txt‘,‘r‘) as f:#開啟一個檔案,把這個檔案的控制代碼付給f
  •           for line in f:
  •               print(line)
  •    with open(‘file.txt‘) as fr,open(‘file_bak‘,‘w‘) as fw: #這個是多檔案的操作,開啟兩個檔案,fr是讀file.txt,fw是建立一個file_bak檔案
  •            for line in fr:#迴圈file.txt中的每一行
  •                fw.write(line)#寫到file_bak檔案中

修改檔案:

    修改檔案的話,有兩種方式,一種是把檔案的全部內容都讀到記憶體中,然後把原有的檔案內容清空,重新寫新的內容;第二種是把修改後的檔案內容寫到一個新的檔案中

  •     第一種
  •     with open(‘file.txt‘,‘r+‘) as fr:
  •         res = fr.read()
  •         new_res = res.replace(‘我‘,‘me‘)
  •         fr.write(new_res)
  •     第二種
  •    with open(‘file.txt‘) as fr,with open(‘file_new‘,‘w‘) as fw: #這個是多檔案的操作,開啟兩個檔案,fr是讀file.txt,fw是建立一個file_bak檔案
  •            for line in fr:#迴圈file.txt中的每一行
  •                new_line = line.replace(‘我‘,‘me‘)
  •                fw.write(new_line)#寫到file_bak檔案中 

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.