open函式
file object = open(file_name [, access_mode][, buffering])
各個引數的細節如下:
1、file_name:file_name變數是乙個包含了你要訪問的檔名稱的字串值。
2、access_mode:access_mode決定了開啟檔案的模式:唯讀,寫入,追加等。所有可取值見如下的完全列表。這個引數是非強制的,預設檔案訪問模式為唯讀(r)。
3、buffering:如果buffering的值被設為0,就不會有寄存。如果buffering的值取1,訪問檔案時會寄存行。如果將buffering的值設為大於1的整數,表明了這就是的寄存區的緩衝大小。如果取負值,寄存區的緩衝大小則為系統預設。
不同模式開啟檔案的完全列表:
模式 描述
r 以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。
rb 以二進位制格式開啟乙個檔案用於唯讀。檔案指標將會放在檔案的開頭。這是預設模式。
r+ 開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。
rb+ 以二進位制格式開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。
w 開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
wb 以二進位制格式開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
w+ 開啟乙個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
wb+ 以二進位制格式開啟乙個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
a 開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
ab 以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
a+ 開啟乙個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。
ab+ 以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。
close函式
file物件的close()方法重新整理緩衝區裡任何還沒寫入的資訊,並關閉該檔案,這之後便不能再進行寫入。當乙個檔案物件的引用被重新指定給另乙個檔案時,python會關閉之前的檔案。語法為:
fileobject.close()
# 開啟乙個檔案
fo = open("foo.txt", "wb")
print "name of the file: ", fo.name
# 關閉開啟的檔案
fo.close()
file物件的屬性
乙個檔案被開啟後,你有乙個file物件,你可以得到有關該檔案的各種資訊。以下是和file物件相關的所有屬性的列表:
屬性 描述
file.closed 返回true如果檔案已被關閉,否則返回false。
file.mode 返回被開啟檔案的訪問模式。
file.name 返回檔案的名稱。
file.softspace 如果用print輸出後,必須跟乙個空格符,則返回false。否則返回true。
# 開啟乙個檔案
fo = open("foo.txt", "wb")
print "name of the file: ", fo.name
print "closed or not : ", fo.closed
print "opening mode : ", fo.mode
print "softspace flag : ", fo.softspace
read函式
read()方法從乙個開啟的檔案中讀取乙個字串。語法:
fileobject.read([count])
在這裡,被傳遞的引數是要從已開啟檔案中讀取的位元組計數。該方法從檔案的開頭開始讀入,如果沒有傳入count,它會嘗試盡可能多地讀取更多的內容,很可能是直到檔案的末尾。
# 開啟乙個檔案
fo = open("/tmp/foo.txt", "r+")
str = fo.read(10);
print "read string is : ", str
# 關閉開啟的檔案
fo.close()
write函式
write()方法可將任何字串寫入乙個開啟的檔案。write()方法不在字串的結尾不新增換行符('\n')。語法為:
fileobject.write(string)
在這裡,被傳遞的引數是要寫入到已開啟檔案的內容。
# 開啟乙個檔案
fo = open("/tmp/foo.txt", "wb")
fo.write( "python is a great language.\nyeah its great!!\n");
# 關閉開啟的檔案
fo.close()
注意檔案的開啟與關閉是成對出現的
try/except
捕捉異常可以使用try/except語句。try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常資訊並處理。如果你不想在異常發生時結束你的程式,只需在try裡捕獲它。語法:
try:
《語句》 #執行別的**
except 《名字》:
《語句》 #如果在try部份引發了'name'異常
except 《名字》,《資料》:
《語句》 #如果引發了'name'異常,獲得附加的資料
else:
《語句》 #如果沒有異常發生
如下面例子所示
try:
fh = open("testfile", "w")
fh.write("this is my test file for exception handling!!")
except ioerror:
print "error: can\'t find file or read data"
else:
print "written content in the file successfully"
fh.close()
try-finally
try-finally 語句無論是否發生異常都將執行最後的**。語法為:
try:
《語句》
finally:
《語句》 #退出try時總會執行
raise
注意:你可以使用except語句或者finally語句,但是兩者不能同時使用。else語句也不能與finally語句同時使用。例如:
try:
fh = open("testfile", "w")
fh.write("this is my test file for exception handling!!")
finally:
print "error: can\'t find file or read data"
Python檔案與異常處理
使用python的bif build in function open 進行檔案讀寫操作 1.開啟檔案 data open file name,w 讀取模式有很多種,主要有 w 寫入 r 唯讀 a 在尾部新增,w 可讀可寫,不存在新建,r 可讀可寫,不存在報錯 a 可讀可寫,不存在建立 2.操作檔案...
Python學習筆記 檔案與異常處理)
with open r d a.txt as file project contents file project.read print contents 函式open 接受乙個引數 要開啟的檔案的名稱 關鍵字with在不再需要訪問檔案後將其關閉 windows在路徑名中既接受斜線 也接受反斜線 檔...
IO之異常處理
在使用io流時,會遇到很多方法會丟擲異常。對於這些異常,我們不應該簡單的將其丟擲,而是應該進行一些處理。public class test 這個簡單的程式中的三行 用於將一句字串寫入檔案中然後關閉資源。但是這三句話都會丟擲異常。所以將這三行 放入try catch 中。因為這三行 有緊密的聯絡,所以...