Python 檔案操作

來源:互聯網
上載者:User

標籤:app   緩衝區   覆蓋   with open   高效   技術分享   hello   清空檔案   讀取檔案   

檔案操作三部曲:開啟 -> 操作 -> 關閉。

一. 檔案操作, 常用的幾種模式:

如果開啟檔案,沒有指定操作方式,預設是讀取;

對於r/r+,如果檔案不存在會報錯,使用時需要保證檔案存在;

對於w/w+,如果使用它們,每次運行檔案內容都會被覆蓋;

對a/a+,這種方式會追加內容,因此指標在結尾。

* 注意:當檔案操作方式是a 或者a+ 時,檔案指標在結尾,如果想要讀取檔案內容,記得修改指標的位置, f.seek(0) 這是將檔案指標放在檔案開始的地方。

二. 檔案的幾種操作方法:

f.seek(), f.read(), f.readline(), f.readlines(), f.close(), f.write(), f.writelines(), f.truncate(), f.flush()

1. 以讀取"test"檔案為例,對檔案各種進行讀取的操作:

 1 f = open(‘test‘,‘a+‘,encoding=‘utf-8‘) # 開啟檔案“test”,往檔案中追加內容 2 f.seek(0)#將檔案指標放在檔案開始 3 print(‘read(): 讀取檔案裡面的全部內容‘) 4 print(f.read()) 5 f.seek(0) 6 print(‘readline() : 唯讀取一行的內容‘) 7 print(f.readline()) 8 #f.seek(0) #不加這行的話f.readlines()會輸出剩餘的內容 9 print(‘readlines(): 讀取檔案裡面的全部內容,把檔案裡面每一行的內容放到一個list裡‘)10 print(f.readlines())11 f.close() # 開啟檔案後記得關閉檔案

這是對應的讀取結果:

 2. 迴圈讀取檔案: next()

Python 3 中的 File 對象不支援 next() 方法。 Python 3 的內建函數 next() 通過迭代器調用 __next__() 方法返回下一項。 在迴圈中,next()方法會在每次迴圈中調用,該方法返迴文件的下一行,如果到達結尾(EOF),則觸發 StopIteration

3. 高效讀取檔案的方式:for f in fw:
1 fw = open(‘test‘,encoding=‘utf-8‘)2 count =13 #直接迴圈檔案對象的話,就是迴圈檔案裡面的每一行4 for f in fw:5     print(‘第%s行‘ %count,f)6     count+=17 fw.close()    
4. 下面是寫入檔案,重新整理緩衝區,清空檔案的操作:

仍然以上面的test 檔案為例,

 1 f = open(‘test‘,‘a+‘,encoding=‘utf-8‘)# 開啟檔案“test”,往檔案中追加內容 2 f.write(‘apple‘+ ‘\n‘)#f.write()寫入的需為字串, \n 為寫入換行 3 tu=(‘dds‘,‘ttt‘,‘iii‘) 4 f.writelines(tu)#寫的時候,傳入一個可迭代的對象 5 f.write(‘\n‘) 6 print(f.tell())#返迴文件當前位置。 7 f.flush()#重新整理檔案內部緩衝,直接把內部緩衝區的資料立刻寫入檔案, 而不是被動的等待輸出緩衝區寫入。 8 f.seek(0) 9 print(f.read())10 f.truncate(10)#截取指定長度11 f.seek(0)12 print(f.read())13 #f.truncate()#清空檔案內容14 f.close()# 開啟檔案後記得關閉檔案

這是對應的結果:

 5.  with 操作檔案,自動關閉檔案

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

具體使用如下:

1 with open(‘test‘, ‘r+‘) as f:2     res = f.read()3     new_res = res.replace(‘ttt‘, ‘nice‘) # 替換 ttt -> nice4     f.write(new_res)5     f.flush()6     f.seek(0)7     print(f.read())

 用with 進行多檔案的操作,具體如下:

1 with open(‘test‘,‘r+‘) as fr:2     with open(‘test_new‘, ‘w+‘) as fw:  # 這個是多檔案的操作,開啟兩個檔案,fr是讀,fw是建立一個檔案寫3         for line in fr:  # 迴圈test 檔案中的每一行4             new_line = line.replace(‘hello‘, ‘good‘)5             fw.write(new_line)  # 寫到test_new檔案中6             

以上是對檔案操作的總結。

 

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.