python基礎之基本讀寫操作

2021-10-07 12:32:16 字數 4113 閱讀 6238

python中要對檔案的基本操作

首先需要通過open方法來開啟檔案

open方法提供初始化輸入、輸出的i/o操作的通用介面,成功後返回乙個檔案物件

file

=open

(file_name[

, access_mode, buffering, encoding]

)

fiel_name:檔案的相對路徑和絕對路徑access_mode:對檔案操作的模式 讀、寫、追加模式

操作說明r讀取

檔案必須存在w寫入

如果檔案存在,要先清空其中的資料,再重新建立a追加

如果檔案不存在,先自動建立檔案。所有寫入的資料都將追加到檔案的末尾。

b二進位制檔案

不能作為第 1 個字元出現。

r+讀寫

不清除原始檔內容,新新增的資料按照位元組覆蓋原內容。

w+讀寫

清除原始檔內容,讀不到原檔案內容。

a+讀寫

把檔案指標移到檔案末尾,在檔案末尾可以繼續寫資料。

buffering:設定緩衝區策略

傳遞0以切換緩衝關閉(僅允許在二進位制模式下),1選擇行緩衝(僅在文字模式下可用),並》1的整數以指示固定大小的塊緩衝區的大小(以位元組為單位)。如果沒有給出buffering引數,則預設按照作業系統緩衝策略的工作。

encoding:用於解碼或編碼檔案的編碼的名稱基於此**開啟檔案

fd =

open

(『nginx。log』, 『r+』)

檔案操作

fd.close(

)

寫檔案
#將字串寫入檔案

fd.write(

str)

#將字串序列寫入檔案

fd.writelines(seq)

例子:將字串寫入檔案

fd =

open

('nginx.log'

,'r+'

)fd.write(

'array1'

)fd.close(

)

執行結果:

例子:將字串序列寫入檔案

array =

['array2\n'

,'array3\n'

,'array4\n'

]fd =

open

('nginx.log'

,'r+'

)fd.writelines(array)

fd.close(

)

注意:行結束符並不會被自動插入

我們呼叫writelines()方法前,每行結尾要加上換行符

就像上邊定義列表時,加上 \n

讀檔案
#讀取位元組到字串中

fd.read(

)#讀取一行檔案到字元創中

fd.readline(

)#讀取所有的剩餘行資料,到字串列表中

fd.readlines(

)

例子:read方法

fd =

open

('nginx.log'

,'r+'

)#不指定讀取多少位元組,預設讀取全部檔案內容

str1 = fd.read(6)

print

(str1)

fd.close(

)

執行結果:

例子:readline方法

fd =

open

('nginx.log'

,'r+'

)for i in

range(3

):str1 = fd.readline(

)print

(str1)

fd.close(

)

執行結果:

例子:readlines

fd =

open

('nginx.log'

,'r+'

)str1 = fd.readlines(

)print

(str1[1]

)#每行被作為乙個列表元素

fd.close(

)

一般檔案的讀方式使用
並不會使用上邊的方式

一般都會使用with open() fd:的方式

with

open

('nginx.log'

,'r+'

)as fd:

for i in fd:

i = i.strip(

)print

(i)

指向檔案中資料的指標,從檔案開始處向後移動檔案指標,讀取檔案中的資料。預設情況下,從左向右,從上至下移動。檔案中資料操作都是通過檔案指標實現的,檔案指標不能自動往回 移動

tell()方法
#用來獲取當前檔案指標在檔案中的位置

fd.tell(

)

例子

with

open

('nginx.log'

,'r'

)as fd:

print

(fd.tell())

with

open

('nginx.log'

,'a'

)as fd:

print

(fd.tell(

))

移動指標的seek()方法
seek()方法使用時,盡量使用二進位制的方式讀取檔案,其他方式對指標的移動方向進行了限制

fd.seek(offset, whence =0)

offset:相對於某個位置的偏移量,以位元組為單位進行從前向後的偏移 負數:從後向前移動指標

whence:指標的偏移位置

0:檔案的開始處

1:指標的當前位置

2:檔案末尾處

例子

with

open

('nginx.log'

,'rb'

)as fd:

print

(fd.tell())

print

('從開頭移動四個位元組位'

) fd.seek(4)

print

(fd.tell())

print

('從當前位置再移動6個位元組位'

) fd.seek(6,

1)print

(fd.tell())

print

('從結尾開始移動'

) fd.seek(-2

,2)print

(fd.tell(

))

執行結果:

python基礎之 open 操作檔案讀寫

釋義open mode r encoding utf 8 讀取檔案內容 open mode w encoding utf 8 覆蓋寫入內容 open mode a encoding utf 8 追加寫入內容 open mode r encoding utf 8 先讀取再寫入內容 open mode ...

Python 檔案讀寫基礎操作例項

本文針對python入門者提供了乙個檔案讀寫的例項,並且對程式進行了詳細的分析,保證剛接觸到python的入門者能理解。如下 created on aug 3 2007 author suqi791776 def main infile open test1.txt r test1 is a def...

檔案讀寫基本操作

python author pengl 以下面檔案 yesterday.txt 為例進行檔案讀寫的練習 oh,yesterday when i was young 噢 昨日當我年少輕狂 so many,many songs were waiting to be sung 有那麼那麼多甜美的曲兒等我歌...