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.ar**屬性,通過該屬性可以得到命令列引數。sys.ar**是乙個字串序列,儲存著命令列的引數,其中sys.ar**[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的檔案機制有了一定的了解了^^!
出處:
Python檔案讀寫
今天在看python檔案讀寫操作,發現python file name mode buffering file 函式用於建立乙個file物件,它有乙個別名叫open 可能更形象一些,它們是內建函式。來看看它的引數。它引數都是以字串的形式傳遞的。name是檔案的名字。mode 是開啟的模式,可選的值為...
python檔案讀寫
檔案讀寫模式 模式 描述 r以讀方式開啟檔案,可讀取檔案資訊。w以寫方式開啟檔案,可向檔案寫入資訊。如檔案存在,則清空該檔案,再寫入新內容 a以追加模式開啟檔案 即一開啟檔案,檔案指標自動移到檔案末尾 如果檔案不存在則建立 r 以讀寫方式開啟檔案,可對檔案進行讀和寫操作。w 消除檔案內容,然後以讀寫...
python 讀寫檔案
python讀寫檔案在文字不大的情況可以用正常的 open 然後讀入 readline行讀入 或者整體讀入 read readlines 基本知識 file open path,r 說明 第乙個引數是檔名稱,包括路徑 第二個引數是開啟的模式mode r 唯讀 預設。如果檔案不存在,則丟擲錯誤 w 只...