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 有那麼那麼多甜美的曲兒等我歌...