python 檔案的開啟與關閉

2021-08-08 14:29:57 字數 4455 閱讀 2540

檔案的開啟與關閉

想一想:

如果想用word編寫乙份簡歷,應該有哪些流程呢?

開啟word軟體,新建乙個word檔案

寫入個人簡歷資訊

儲存檔案

關閉word軟體

同樣,在操作檔案的整體過程與使用word編寫乙份簡歷的過程是很相似的 (io操作)

開啟檔案,或者新建立乙個檔案

讀/寫資料

關閉檔案

<1>開啟檔案

在python,使用open函式,可以開啟乙個已經存在的檔案,或者建立乙個新檔案 open(檔名,訪問模式)

示例如下:

f = open(

'test.txt'

, 'w'

)

說明:

訪問模式 說明

r以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。 w

開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 a

開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 rb

以二進位制格式開啟乙個檔案用於唯讀。檔案指標將會放在檔案的開頭。這是預設模式。 wb

以二進位制格式開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 ab

以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 r+

開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。 w+

開啟乙個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 a+

開啟乙個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。

rb+以二進位制格式開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。

wb+以二進位制格式開啟乙個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

ab+以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。

<2>關閉檔案

close( )

示例如下:

# 新建乙個檔案,檔名為:test.txt

f = open(

'test.txt'

, 'w'

) # 關閉這個檔案

f.close()

檔案的讀寫

<1>寫資料(write)

使用write()可以完成向檔案寫入資料

f = open(

'test.txt'

, 'w')

f.write(

'hello world, i am here!')

f.close()

注意:

<2>讀資料(read)

使用read(num)可以從檔案中讀取資料,num表示要從檔案中讀取的資料的長度(單位是位元組),如果沒有傳入num,那麼就表示讀取檔案中所有的資料

demo:

f = open('test.txt', 'r')

content = f.read(1024)

print(content)

print("-"*30)

content = f.read()

print(content)

f.close()

注意:

應用1:檔案的copy

<3>讀資料(readlines)

就像read沒有引數時一樣,readlines可以按照行的方式把整個檔案中的內容進行一次性讀取,並且返回的是乙個列表,其中每一行的資料為乙個元素

#coding=utf-8

f = open(

'test.txt'

, 'r')

content = f.readlines()

print(type(content))

i=1

fortemp

incontent:

print(

"%d:%s"

%(i, temp))

i+=1

f.close()

<4>讀資料(readline)

#coding=utf-8

f = open(

'test.txt'

, 'r')

content = f.readline()

print(

"1:%s"

%content)

content = f.readline()

print(

"2:%s"

%content)

f.close()

想一想:

如果乙個檔案很大,比如5g,試想應該怎樣把檔案的資料讀取到記憶體然後進行處理呢?

檔案的定位讀寫

<1>獲取當前讀寫的位置tell

在讀寫檔案的過程中,如果想知道當前的位置,可以使用tell()來獲取

# 開啟乙個已經存在的檔案

f = open(

"test.txt"

, "r")

str = f.read(3)

print

"讀取的資料是 : "

, str

# 查詢當前位置

position = f.tell()

print

"當前檔案位置 : "

, position

str = f.read(3)

print

"讀取的資料是 : "

, str

# 查詢當前位置

position = f.tell()

print

"當前檔案位置 : "

, position

f.close()

<2>定位到某個位置

如果在讀寫檔案的過程中,需要從另外乙個位置進行操作的話,可以使用seek()

seek(offset, from)有2個引數

demo:把位置設定為:從檔案開頭,偏移5個位元組

# 開啟乙個已經存在的檔案

f = open(

"test.txt"

, "r")

str = f.read(

30)

print

"讀取的資料是 : "

, str

# 查詢當前位置

position = f.tell()

print

"當前檔案位置 : "

, position

# 重新設定位置

f.seek(5,

0) # 查詢當前位置

position = f.tell()

print

"當前檔案位置 : "

, position

f.close()

demo:把位置設定為:離檔案末尾,3位元組處

# 開啟乙個已經存在的檔案

f = open(

"test.txt"

, "r"

)  

# 查詢當前位置

position = f.tell()

print

"當前檔案位置 : "

, position  

# 重新設定位置

f.seek(-3,

2)  

# 讀取到的資料為:檔案最後3個位元組資料

str = f.read()  

print

"讀取的資料是 : "

, str

f.close()

python之檔案的開啟與關閉

在python系統中,檔案是乙個物件型別,類似字典,元組等其他型別。python系統的檔案概念不侷限於磁碟上的檔案,還可以是抽象的,具有檔案型介面的類檔案。摘自 python程式設計教程 python提供open 函式建立檔案物件,並開啟要讀寫的檔案open 開啟格式 open buffer 其中,...

python 檔案的開啟關閉

文字檔案和二進位制檔案 檔案可以看成是儲存在輔助儲存器上的資料序列,可以包含任何資料內容。檔案包括兩種形式 文字檔案和二進位制檔案。文字檔案一般由特定編碼的字元組成,二進位制檔案由位元0和位元1組成,沒有統一的字元編碼,資料的組織形式與檔案用途有關。文字檔案和二進位制檔案的根本區別是是否有統一的字元...

Python之檔案的開啟關閉

1.建立磁碟 上的檔案與程式中的物件相關聯 2.通過相關的檔案物件獲得 1 讀取 2 寫入 3 其他 追加 計算等 1 切斷檔案與程式的聯絡 2 寫入磁碟,並釋放檔案緩衝區 1 open 2 open 磁碟檔名 3開啟模式 1 例如,開啟乙個名為7.1 txt檔案 2 textfile open 7...