檔案的操作
異常處理
什麼是檔案呢?
檔案是資料的抽象和集合檔案是儲存在輔助儲存器上的資料序列
檔案是儲存的一種
檔案有哪些型別呢?
本質上所有檔案以二進位制儲存,不過又可以分為文字檔案和二進位制檔案文字檔案時由單一特定編碼組成,如utf-8編碼
用於txt、py檔案
首先,想要操作檔案必須了解檔案的操作步驟,明白檔案操作的流程。
那麼檔案操作有哪幾個步驟呢?
檔案處理可以分為三大步:
檔案的開啟
檔案的具體操作
檔案的關閉
檔案開啟有兩種方式:
直接採用open(檔名稱)開啟
filename =
open
('test1.txt'
)#注意:檔名稱可以是檔案相對與當前程式的路徑,稱為相對路徑;
#也可以是檔案相對於電腦的路徑,稱為絕對路徑。
採用with… as… 開啟
filename =
'test1'
with
open
(filename)
as f:
#檔案操作**
檔案開啟後必須關閉檔案。不過在python解析器中,當程式關後會自動關閉檔案。
檔案關閉語法 變數名.close()
filename =
open
('test1.txt'
)#檔案操作**
filename.close(
)
需要注意的是,採用with…as…方式開啟的檔案就不用我們在寫關閉檔案的**。with…as…會自動在檔案操作**執行完成後關閉檔案。
檔案操作分為:讀檔案、寫檔案。
讀檔案有三種操作方式,分別是:
file.read(size)
讀入全部內容,預設size=-1,如果size=n則讀入前size長度
file.readline(size)
讀入一行內容,預設size=-1,如果給出引數,則讀入該行前size長度的內容
file.readlines(hint)
讀入檔案所有行,以每行為元素形成列表,預設hibt=-1,如果給出引數,則讀入前hint行
寫檔案有兩種操作方式外加一種輔助操作:
file.write(s)
向檔案協議乙個字串或位元組流
f.write(
'中國是乙個偉大的國家!'
)
file.writeline(lines)
將乙個元素全位字串的列表寫入檔案,字串拼接後寫入
ls =
['中國'
,'法國'
,'美國'
]f.write(ls)
#中國法國美國
file.seek(offset)
改變當前檔案操作指標的位置,offset含義如下:
0-檔案開頭;1-當前位置;2-檔案結尾
f.seel(0)
#回到檔案開頭
f.seel(1)
#檔案當前位置
f.seel(2)
#回到檔案結尾
fo = opne(
'test1.txt'
,'w+'
)ls =
['中國'
,'法國'
,'美國'
]fo.writelines(ls)
fo.seek(0)
for line in fo:
print
(line)
fo.close(
)
檔案開啟模式有七種:
'r' 唯讀模式,預設值,如果訪問到檔案不存在,則返回filenotfounderror一異常
'w'覆蓋寫模式,檔案不存在則建立檔案,如果檔案存在,則完全覆蓋
'x'建立寫模式,檔案不存在則建立檔案,存在則返回fileexistserror
'a'追加寫模式,檔案不存在則建立檔案,檔案存在則在檔案最後追加內容
'b'以二進位制形式開啟檔案
't'以文字形式開啟檔案 預設模式
'+'與r/w/a/一同使用,在與原功能上增加讀寫功能
filename =
open
('test1.txt'
)#預設使用文字形式和唯讀模式開啟檔案
filename =
open
('test1.txt'
,'rt'
)#文字制度模式開啟檔案
filename =
open
('test1.txt'
,'w'
)#文字形式,覆蓋寫模式開啟問及那
filename =
open
('test1.txt'
,'a+'
)#文字形式,追加寫模式+讀檔案
filename =
open
('test1.txt'
,'x'
)#文字形式、建立寫模式
filename =
open
('test1.txt'
,'b'
)#二進位制形式,唯讀模式
filename =
open
('test1.txt'
,'wb'
)#二進位制形式,覆蓋寫模式
filename.close(
)
方法一:
fname =
input
('請輸入要開啟檔案的名稱:'
)fo =
open
(fname,
'r')
txt = fo.read(
)#對全文本txt進行處理
fo.close(
)# 一次讀入,統一處理,文字檔案內容大消耗大
方法二:
fname =
input
('請輸入要開啟檔案的名稱:'
)fo =
open
(fname,
'r')
txt = fo.read(2)
while txt !='':
#對txt進行處理
txt = fo.read(2)
fo.close(
)# 分階段,按數量讀入,逐步處理 處理大檔案更加可行有效
什麼是異常呢?
在程式執行過程中,不可避免的出現一些錯誤 例如用沒賦值的變數等
首先我們要明白,
程式執行時出現異常、目的不是終止程式
python是希望出現異常時,我們可以編寫**來對異常進行處理
當在函式**現異常時,如果在函式中處理了異常,則不會在繼續傳播
如果函式中沒有處理,則異常會像函式掉用傳播
如果函式點用處處理了異常則不會傳播
如果沒有處理則會繼續傳播
知道傳遞到全域性作用域(主模組)如果依然沒有處理,則程式會終止
deffn(
):print
('hello fn'
)print(10
/0)def
fn2():
print
('hello fn2'
) fn(
)def
fn3():
print
('hello fn3'
) fn2(
)
異常的處理可以使用如下語法:
try
:#可能出現異常的**塊
except
:#出現異常後執行的**塊
finally
:#管有沒有異常都會執行的**塊
print
('異常出現前'
)try
:print
(a)print(10
/0)except exception as e:
#except後面如果跟異常物件則預設捕獲所有異常
#由於exception是所有異常物件的父物件所以except後面跟exception捕獲所有異常
print
(e,type
(e))
else
:print
('yi'
)finally
:print
('無論是否出現異常,finally都會執行'
)
python檔案操作和異常
python檔案的操作和異常 toc 這兩個月複習考研的同時,在github上斷斷續續的跟著駱先生 jackfrued 在我關注裡有 學習了一段時間的python,由於是自學所以經常會遇到一些容易卡死的問題,這篇文章我就簡單的分享一下在檔案及檔案異常我遇到的問題。函式語法 open file uni...
python基礎之檔案操作和異常處理
讀取整個檔案 讀取檔案先要建立乙個檔案,在程式的同一目錄下。greet.txt hello world hello world hello world hello world with open greet.txt as file object contents file object.read p...
詳解python檔案的操作和異常的處理
目錄 格式 f open 檔案 w 或者f open 檔案 r 格式 f open 檔案 w 或者f open 檔案 r 物件 open 檔案 r 變數 物件.read print 變數 如果用open開啟檔案時,如果使用的 r 那麼可以省略,即只寫 open test.txt 如果沒有檔案,開啟報...