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/
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。