Python文件讀寫機制


Python提供了必要的函數和方法進行默認情況下的文件基本操作

文件打開方式:

open(name[,mode[buf]])

name:文件路徑

mode:打開方式

buf:緩沖buffering大小

文件讀取方式:

read([size]):讀取文件(讀取size字節,默認讀取全部)

readline([size]):讀取一行

readline([size]) :讀取緩沖buf(io.DEFAULT_SET_BUFFER),返回每一行所組成的列表

iter:使用迭代器遍歷讀取文件 f.open(name);iter_f = iter(f);用for line in iter_f循環迭代器

文件寫入方式:

write(str):將字符串寫入文件

writelines(sequence_of_strings):寫多行到文件,參數為可迭代的對象

當調用write(str)時,python解釋器調用系統調用想把把內容寫到磁盤,但是linux內核有文件緩存機制,所以緩存到內核的緩存區,當調用close()或flush()時才會真正的把內容寫到文件

或者寫入數據量大於或者等於寫緩存,寫緩存也會同步到磁盤上

關閉文件的目的

1:寫緩存同步到磁盤

2:linux系統中每個進程打開文件的個數是有限的

3:如果打開文件數到了系統限制,在打開文件就會失敗

python文件指針的操作:

seek(offset[,whence])移動文件指針

offset:偏移量,可以為負數

whence:偏移相對位置

python文件指針的定位方式:

os.SEEK_SET 相對於文件的起始位置 0

os.SEEK_CUR 相對於文件的當前位置 1

os.SEEK_END 相對於文件的結尾位置 2

Python 文件屬性:

file.fileno(): 文件描述符;

file.mode: 文件打開權限;

file.encoding: 文件編碼方式;

file.closed: 文件是否關閉;

Python 標准文件:

標准輸入文件:sys.stdin; 只讀 描述符為0

標准輸出文件:sys.stdout; 只寫 描述符為1

標准錯誤文件:sys.stderr; 只寫 描述符為2

Python 命令行參數:

sys模塊提供sys.argv屬性,通過該屬性可以得到命令行參數。sys.argv是一個字符串序列,保存着命令行的參數,其中sys.argv[0]是文件名,1~n是真正的參數

Python 文件編碼方式

Python文件默認的編碼格式是ASCII格式,要寫入中文可以將編碼格式進行轉換

1. a = unicode.encode(u'你好', 'utf-8') 轉換, 一個漢字在ASCII碼中占3字節,在unicode中占2字節。

2. 直接創建utf-8格式的文件。使用codecs模塊提供的方法創建指定編碼格式文件:

codecs.open(fname, mode, encoding, errors, buffering): 使用指定編碼格式打開文件

3. 使用系統提供的open()函數也可以創建指定編碼格式的文件:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

Linux文件系統簡單示意圖


下面是python操作文件的流程

 


看完這些,是不是對python的文件機制有了一定的了解了^^!

 

      微信打賞通道              支付寶打賞通道

 

 

 


作者:Andy
出處:http://www.cnblogs.com/onepiece-andy/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM