投資公司注冊需要什么資質(zhì)優(yōu)化模型的推廣
目錄
一、異常
1、檢測異常try語句
2、拋出異常
3、異常處理流程
二、文件操作
1、打開文件
①文件模式acess_mode
②文件緩沖區(qū)
2、基本的文件方法
①讀和寫、關(guān)閉文件
②讀取行
③文件重命名
④刪除文件(系統(tǒng)中已存在的文件)
3、基本的目錄方法
①創(chuàng)建與刪除目錄(文件夾)
②顯示當(dāng)前工作目錄
③改變當(dāng)前工作目錄
一、異常
某些代碼錯(cuò)誤不是致命的,不會(huì)導(dǎo)致程序崩潰,如邏輯錯(cuò)誤、用戶輸入不合法等。這些可通過python提供的異常機(jī)制,在錯(cuò)誤出現(xiàn)時(shí),以程序內(nèi)部的方式消化解決。
1、檢測異常try語句
任何出現(xiàn)在try語句范圍內(nèi)的異常都可以被檢測到,4種模式:try-except語句、try-except-finally語句、try-except-else語句、try(with)-except語句。
①try-except語句
語法格式(語句塊為檢測范圍,except后跟異常名字,as reason輸出異常的具體內(nèi)容):
try:[語句塊] ? ??
except Exception[as reason]: ? ?出現(xiàn)異常(exception)后的處理代碼
示例1:
try:f = open('test.txt')print(f.read())f.close()
except OSError as reason:print("文件出現(xiàn)錯(cuò)誤的原因是:" + str(reason))
運(yùn)行結(jié)果:
文件出現(xiàn)錯(cuò)誤的原因是:[Errno 2] No such file or directory: 'test.txt'
注:一個(gè)try還可以與多個(gè)except搭配,對我們感興趣的異常進(jìn)行檢測處理:OSError、TypeError
except OSError as reason:...
except TypeError as reason:...
若對多個(gè)異常統(tǒng)一進(jìn)行處理,可寫為:
except (OSError,TypeErro):
②try-finally語句
語法格式:
try:[語句塊] ? ??
except Exception[as reason]: ? ?出現(xiàn)異常(exception)后的處理代碼
finally:無論如何一定執(zhí)行的代碼
示例:如在示例1后加入
finally:f.close()
③try-except-else語句
語法格式:
try:[語句塊] ? ??
except Exception[as reason]: ? ?出現(xiàn)異常(exception)后的處理代碼
else:沒有異常時(shí)被執(zhí)行的代碼
④try(with)-except語句
語法格式:
try:with <語句> as name:[語句塊]
except OSError as reason:出現(xiàn)異常(exception)后的處理代碼
在語法中可以看出,with語句出現(xiàn)在try語句塊中,一般情況下不需要再寫finally語句塊了。使用with語句最大的好處是減少代碼量,例如當(dāng)我們對文件操作時(shí)忘記了關(guān)閉文件操作,則with語句會(huì)自動(dòng)執(zhí)行關(guān)閉文件操作。示例代碼如下:
try:with open('D:\data.txt',"w") as f:f.write("測試with語句功能!寫入這句話")for each_line in f:print(each_line)
except OSError as reason:print("文件出現(xiàn)錯(cuò)誤的原因是:" + str(reason))
2、拋出異常
主動(dòng)拋出異常,使用關(guān)鍵字raise,語法格式:
raise Exception(defineexceptname)
其中Exception為異常名稱如OSError、TypeError、ZeroDivisionError等。defineexceptname為自定義的異常描述。
>>> raise ZeroDivisionError('不能除以0')
Traceback (most recent call last):File "<pyshell#1>", line 1, in <module>raise ZeroDivisionError('不能除以0')
ZeroDivisionError: 不能除以0
3、異常處理流程
此處略,可根據(jù)需要自行學(xué)習(xí)!!
二、文件操作
大多數(shù)程序遵循輸入、處理、輸出的模型,但我們不滿足input、print,再進(jìn)階就涉及到對文件的處理!
1、打開文件
打開文件使用內(nèi)置函數(shù)open(),創(chuàng)建file對象,只有存在file對象后用戶才能對文件進(jìn)行相應(yīng)操作。語法格式:
file object = open(file_name,access_mode,buffering)
file_name:必選參數(shù),訪問文件的字符串值(路徑)
access_mode:可選參數(shù),訪問文件的模式,默認(rèn)是只讀(‘r’)
buffering:可選參數(shù),設(shè)置文件緩沖區(qū),默認(rèn)緩沖區(qū)大小是4096字節(jié)。
以默認(rèn)只讀方式打開一個(gè)文件(只讀模式時(shí),文件路徑必須完整):
f = open("D:\data.txt")
①文件模式acess_mode
r:只讀方式打開文件,默認(rèn)模式。
rb:只讀方式、二進(jìn)制格式打開文件。
r+:打開一個(gè)文件,用于讀寫(可理解為rw)。
w:打開一個(gè)文件,用于寫入。如果文件存在,內(nèi)部信息會(huì)被刪除,從頭編輯;若文件不存在則創(chuàng)建新文件,從頭寫入。
wb:以二進(jìn)制打開一個(gè)文件,用于寫入。一般用于非文本文件
w+:打開一個(gè)文件,用于讀寫(可理解為wr)。
wb+:以二進(jìn)制打開一個(gè)文件,用于讀寫。一般用于非文本文件
a:打開一個(gè)文件,用于追加。如果文件存在,接著內(nèi)部信息寫入,從頭編輯;若文件不存在則創(chuàng)建新文件,從頭寫入。
ab:以二進(jìn)制打開一個(gè)文件,用于追加。
a+:打開一個(gè)文件,用于讀寫。
ab+:以二進(jìn)制打開一個(gè)文件,用于讀寫。
(a類比w,區(qū)別在于a寫時(shí)不會(huì)刪除原信息,而是跟著原信息追加)
②文件緩沖區(qū)
python文件緩沖區(qū),一般分為3種模式:全緩沖、行緩沖、無緩沖。
全緩沖:默認(rèn)模式,空間大小為4096字節(jié)。前4069個(gè)字節(jié)信息會(huì)寫在緩沖區(qū),當(dāng)?shù)?097個(gè)字節(jié)寫入時(shí),系統(tǒng)會(huì)把先前的4096個(gè)字節(jié)通過系統(tǒng)調(diào)用寫入文件??梢灾付▍?shù)Buffering = n自定義緩沖區(qū)大小。
行緩沖:Buffering = 1,系統(tǒng)每遇到一個(gè)換行符('\n')時(shí)才進(jìn)行系統(tǒng)調(diào)用,將緩沖區(qū)的信息寫入文件。
無緩沖:Buffering = 0,將系統(tǒng)產(chǎn)生的信息實(shí)時(shí)寫入文件。
2、基本的文件方法
①讀和寫、關(guān)閉文件
讀:str = fileobject.read(size)
其中size是指定讀取的字節(jié)數(shù),若沒指定默認(rèn)讀取全部信息,返回值為從文件中讀到的字符串。
>>> f = open('D:\\data.txt','r')
>>> str_test = f.read()
>>> print(str_test)
測試with語句功能!寫入這句話
>>> f.close() ?
寫:fileobject.write(string)
>>> f = open('D:\\data.txt','w')
>>> f.write("這是一個(gè)寫測試!\n")
9 ? #返回值是寫入字符串的個(gè)數(shù)(\n也算)
>>> f.close()
②讀取行
str = fileobject.readline(size):
讀取整行,包括\n字符,size也是可選參數(shù)
fileobject.readline():
讀取所有行,直到結(jié)束符EOF,并返回列表(包括所有行信息),常結(jié)合for ...in...結(jié)構(gòu)處理。
③文件重命名
語法格式:
import os
os.rename(current_filename,new_filename)
示例:
>>> import os
>>> os.rename('D:\\data.txt','D:\\newdata.txt')
④刪除文件(系統(tǒng)中已存在的文件)
語法格式:
import os
os.remove(filename)
3、基本的目錄方法
①創(chuàng)建與刪除目錄(文件夾)
os.mkdir('newdir')
os.rmdir('dirname')
示例:
>>> import os
>>> os.mkdir('D:\\testdir')
>>> os.rmdir('D:\\testdir')
②顯示當(dāng)前工作目錄
os.getcwd()
示例:
>>> os.getcwd()
'D:\\python3.6.6'
③改變當(dāng)前工作目錄
os.chdir('newdir')