Python檔案讀寫機制

2022-09-17 07:24:14 字數 2268 閱讀 4354

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 只...