Python 中的基本檔案操作
阿新 • • 發佈:2018-12-05
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等比較類似,不再贅述。