當前位置:成語大全網 - 書法字典 - 如何在python中打開和關閉文件?

如何在python中打開和關閉文件?

打開和關閉文件

現在,您可以讀寫標準輸入和輸出。現在,讓我們看看如何讀寫實際的數據文件。

默認情況下,Python提供了必要的函數和方法來執行基本的文件操作。妳可以用它。文件?對象執行大部分文件操作。

開放功能

必須先用Python內置的open()函數打開壹個文件,創建壹個file對象,相關方法才能調用它讀寫。

語法:

file object = open(文件名[,訪問模式][,緩沖])

每個參數的詳細信息如下:

file _ name:file _ name變量是壹個字符串值,包含您要訪問的文件的名稱。

Access _ mode: Access _ mode決定了打開文件的模式:只讀、寫、追加等。請參閱以下所有理想值的完整列表。該參數是可選的,默認的文件訪問模式是只讀的。

緩沖:如果緩沖的值設置為0,將不會有註冊。如果buffering的值是1,則在訪問文件時將註冊該行。如果buffering的值設置為大於1的整數,則表明這是寄存器區域的緩沖區大小。如果取負值,則寄存器區的緩沖區大小為系統默認值。

以不同模式打開的文件的完整列表:

模型

形容

r以只讀方式打開文件。指向文件的指針將放在文件的開頭。這是默認模式。

Rb以只讀方式打開二進制格式的文件。文件指針將放在文件的開頭。這是默認模式。

R+打開文件進行讀寫。文件指針將放在文件的開頭。

Rb+打開二進制格式的文件進行讀寫。文件指針將放在文件的開頭。

打開壹個只寫的文件。如果文件已經存在,覆蓋它。如果該文件不存在,請創建壹個新文件。

Wb以二進制格式打開壹個文件,只允許寫。如果文件已經存在,覆蓋它。如果該文件不存在,請創建壹個新文件。

打開壹個文件進行讀寫。如果文件已經存在,覆蓋它。如果該文件不存在,請創建壹個新文件。

Wb+打開二進制格式的文件進行讀寫。如果文件已經存在,覆蓋它。如果該文件不存在,請創建壹個新文件。

打開壹個附加文件。如果文件已經存在,文件指針將放在文件的末尾。也就是說,新內容會寫在現有內容之後。如果該文件不存在,請創建壹個新文件進行寫入。

Ab打開壹個二進制格式的文件進行追加。如果文件已經存在,文件指針將放在文件的末尾。也就是說,新內容會寫在現有內容之後。如果該文件不存在,請創建壹個新文件進行寫入。

A+打開壹個文件進行讀寫。如果文件已經存在,文件指針將放在文件的末尾。該文件將以追加模式打開。如果該文件不存在,請創建壹個新文件進行讀寫。

Ab+打開壹個二進制格式的文件進行追加。如果文件已經存在,文件指針將放在文件的末尾。如果該文件不存在,請創建壹個新文件進行讀寫。

下圖很好地總結了這些模式:

模型

r

r+

w

w+

a

a+

讀++++

寫++++

創建++++

覆蓋++

指針在++的開頭

指針在++的末尾

文件對象的屬性。

壹個文件打開後,妳就有了壹個file對象,妳可以得到關於它的各種信息。

以下是與file對象相關的所有屬性的列表:

屬性

形容

如果文件已經關閉,File.closed返回true,否則返回false。

File.mode返回打開文件的訪問模式。

File.name返回文件的名稱。

如果File.softspace在打印後必須跟壹個空格字符,則返回false。否則返回true。

例子如下:

#!/usr/bin/python# -*-編碼:UTF-8 -*-

#打開壹個文件fo = open("foo.txt "," wb")print "文件名:",fo.nameprint "是否關閉:",fo.closedprint "訪問模式:",fo.modeprint "是否強制在末尾加空格:",fo.softspace?

以上示例的輸出結果:

文件名:?foo.txt關閉了嗎:?真實訪問模式:?wb結尾必須加空格嗎:?0

Close()方法

File對象的close()方法刷新緩沖區中任何未寫的信息並關閉文件,之後就不能再寫了。

當壹個文件對象的引用被重新分配給另壹個文件時,Python將關閉前壹個文件。用close()方法關閉文件是壹個好習慣。

語法:

file object . close();

示例:

#!/usr/bin/python# -*-編碼:UTF-8 -*-

#打開壹個文件fo = open("foo.txt "," wb")print "文件名:",fo.name

#關閉打開的文件fo.close()

以上示例的輸出結果:

文件名:?foo.txt

讀取和寫入文件:

file對象提供了壹系列方法,可以使我們的文件訪問更容易。讓我們看看如何使用read()和write()方法來讀寫文件。

Write()方法

write()方法可以將任何字符串寫入打開的文件。值得註意的是,Python字符串可以是二進制數據,而不僅僅是文本。

write()方法不在字符串末尾添加換行符(' \n '):

語法:

fileObject.write(字符串);

這裏,傳遞的參數是要寫入打開的文件的內容。

示例:

#!/usr/bin/python# -*-編碼:UTF-8 -*-

#打開壹個文件fo = open ("foo.txt "," WB") fo.write ("www.runoob.com!\ n非常好的網站!\ n ");

#關閉打開的文件fo.close()

上面的方法會創建foo.txt文件,將接收到的內容寫入文件,最後關閉文件。如果打開該文件,您將看到以下內容:

$ cat foo.txt

www.runoob.com!非常好的網站!

Read()方法

read()方法從打開的文件中讀取壹個字符串。值得註意的是,Python字符串可以是二進制數據,而不僅僅是文本。

語法:

file object . read([count]);

這裏,傳遞的參數是從打開的文件中讀取的字節數。此方法從文件的開頭讀入。如果沒有傳入計數,它將嘗試盡可能多地讀取,可能直到文件的結尾。

示例:

這裏我們使用上面創建的foo.txt文件。

#!/usr/bin/python# -*-編碼:UTF-8 -*-

#打開壹個文件fo = open ("foo.txt "," r+")str = fo . read(10);print "讀取的字符串是:",str#關閉打開的文件fo.close()。

以上示例的輸出結果:

讀取的字符串是:?www.runoob

文件位置: