Python檔案方法

來源:互聯網
上載者:User

標籤:

開啟檔案

  使用open函數,文法格式為:open( name[, mode[, buffering]]),name為開啟檔案名稱,mode為開啟檔案方式,buffering控制檔案的緩衝。

  mode可選,預設為唯讀模式,即r, 其中使用的參數有

open函數中mode參數的值
描述
r
w
a 檔案末尾追加
b 二進位模式,可添加到其他模式中
+ 讀/寫入模式,可以添加到其他模式中

  buffering可選,0表示輸入輸出無緩衝; 1表示有緩衝, 使用記憶體來代替硬碟,只有使用flush或者close時才會更新硬碟資料;大於1表示指定緩衝區大小;小於0表示使用預設的緩衝區大小。

類檔案對象中包含一些讀方法和寫方法以及定位游標,關閉類檔案對象等方法。

類檔案對象方法
read 讀取字元
readline 讀取一行
readlines 讀取整個檔案的所有行並將其作為列表返回
write 寫入字元
writelines 將字串列表寫入檔案,不過程式不會增加新行,需要自己添加
seek 定位游標位置,
close 關閉檔案對象

注意,寫檔案沒有writeline方法,因為可以用write方法。

 

關閉檔案

  寫過的檔案總是應該關閉,是因為python可能會緩衝寫入的資料,如果程式因為某些原因崩潰了,那麼資料根本就不會寫入檔案。要確保檔案被關閉,應該使用try/finally語句,並且在finally子句中調用close方法。

f = open(‘c:\file.txt‘)try:    f.write(‘close the file‘)finally:    f.close()

此外,還可以使用with語句,可以開啟檔案並將其賦值到變數上。之後就可以將資料寫入檔案。檔案在語句結束後會自動關閉,即使是由於異常引起的結束也是如此。

with open(‘c:\file.txt‘) as f:    f.write(‘close the file‘) 

  

  

操作檔案

開啟檔案得打類檔案對象以後就可以使用類檔案對象方法進行讀寫操作了。

例如,f = open(‘file.xt‘, ‘r‘) 以唯讀方式開啟檔案,然後可以str = f.read(n)表示從開啟的檔案中讀取n個字元

迴圈處理檔案每個字元

f = open(filename)while True:    char = f.read(1)    if not char: break    print(char)f.close()

迴圈處理檔案每行

f = open(filename)while True:    line = f.readline()    if not line:        break    print(line)f.close()

如果檔案不是很大,可以將直接讀取整個檔案,然後進行處理

f = open(filename)for char in f.read():    print(char)f.close()
f = open(filename)for line in f.readline():    print(line)f.close()

 

檔案迭代器操作檔案

在python中,檔案對象是可以迭代的,這意味著可以直接在for迴圈中使用它們,從而對它們進行迭代。

f = open(filename)for line in f:    print(line)f.close()

sys.stdin也是可以迭代的,就像其他的檔案對象一樣。如果想要迭代標準輸入中的所有行,可以按如下形式使用

import sysfor line in sys.stdin:    print(line)

 

 

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.