現在,您可以讀寫標準輸入和輸出。現在,讓我們看看如何讀寫實際的數據文件。
默認情況下,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
文件位置: