1. 程式人生 > >Python 中的基本檔案操作

Python 中的基本檔案操作

Python 基本檔案操作

Python(2.7) 裡面的基本的檔案操作包含兩個部分第一是內建的open函式,第二是檔案類file. python shell下通過help(open) 可以檢視到open這個函式支援的引數。

open(name[, mode[, buffering]]) -> file object

第一個引數表示檔名稱,第二個引數表示檔案操作的模式,具體的操作模式列表如下
這裡寫圖片描述

一共12種模式。主要模式是r(只讀) w(只寫) a(追加內容)。而+和b可以看成是模式的拓展,+表示讀寫都可進行,b表示的純二進位制操作。有一點必須注意,即是當模式中涉及到b時,特別是針對文字檔案的二進位制讀取需要小心。在windows下當以字元(r)寫入回車符號的時候。其實儲存的是兩個字元,所以此時以b模式讀取出的時候會出現字串長度大於寫入長度

fe = open('testb.txt','w')
ss_w = 'helloworld\n'
print ss_w
print '寫入字元長度',len(ss_w)
fe.write(ss_w) # 
fe.close()

fe = open('testb.txt','rb') # 二進位制讀取
ss = fe.read()
print ss
print '讀取字元長度',len(ss)

執行結果

helloworld

寫入字元長度 11
helloworld

讀取字元長度 12

常用的方法

read readline readlines

三個方法是常用的讀取方法,都可以新增可選引數[size]。read方法不帶引數預設是讀取檔案所有內容。readline是讀取一行內容(如果一行裡面有回車,包含回車內容)而readlines即是重複呼叫readline。多次讀取檔案中的內容,返回內容的一個字串list

write writelines

write方法中沒有writeline因為這個方法可以被write(content+\n)替代。writelines給定一個sequence,然後可以將這個sequence每一個元素當做一行寫入到檔案當中. 當然回車換行需要自己寫入

se = ['hello\n','world\n']
fe = open('testa.txt','w')
fe.writelines(se)
fe.close()

fe = open('testa.txt','r')
ss = fe.readlines()
print ss

執行結果

['hello\n', 'world\n']

seek

該方法用於調節檔案中讀寫操作的位置,基本描述如下

seek(offset[, whence]) -> None.  Move to new file position.

    Argument offset is a byte count.  Optional argument whence defaults to
    0 (offset from start of file, offset should be >= 0); other values are 1
    (move relative to current position, positive or negative), and 2 (move
    relative to end of file, usually negative, although many platforms allow
    seeking beyond the end of a file).  If the file is opened in text mode,
    only offsets returned by tell() are legal.  Use of other offsets causes
    undefined behavior.
    Note that not all file objects are seekable.

設定偏移位置與相對位置(相對於頭部,尾部以及當前)與matlab等比較類似,不再贅述。