天天看點

Python之路——檔案、異常和測試

今天是看Python理論部分的最後一塊,檔案的讀寫,Python中的異常和用Python測試。

檔案的讀寫

with open('檔案名.檔案字尾名') as 檔案對象名:
	變量名 = 檔案對象名.read()
	print(變量名)
           
  • 函數open():接受一個參數——要打開檔案的檔案名。在目前執行檔案的目錄查找指定檔案(參數).
  • 關鍵字with:不再需要在通路檔案後關閉。open()傳回的檔案對象隻在with代碼塊内可用
  • read方法讀取内容,讀取到檔案末尾會傳回一個空字元串,這個字元串列印時會有空行,可通過rstrip()方法消除。
with open('檔案名.檔案字尾名','w') as 檔案對象名:
	變量名 = 檔案對象名.write("寫入内容")
           

第二個參數:

  • ‘w’:寫入模式(會覆寫之前内容)
  • ‘r’:讀取模式(不寫預設r)
  • ‘a’:附加模式(在檔案末尾繼續寫,不會覆寫之前)
  • ‘r+’:讀取和寫入模式(寫會覆寫之前内容)
  • ‘r+a’:可讀寫(不會覆寫之前内容)
  • ‘b’:二進制資料

異常

try–except–else:

try:
	執行語句
except 異常名:
	提示資訊
	#pass,在此處寫pass代表什麼都不做
else:
	依賴執行語句的語句
           

當然,else代碼塊不是必須的,雖然常常會用到;而try和except必須是成對出現的。

測試

一些概念:

  • 單元測試:核實函數的某個方面沒有問題
  • 測試用例:一組單元測試,一起核實函數在各種情形下的行為都符合要求
  • 全覆寫測試用例:一整套單元測試,涵蓋了各種可能的函數的使用方式。
單元測試
#導入子產品unittest
import unittest
#導入要測試的函數
from 檔案名 import 函數名
#建立一個繼承unittest.TestCase的類
class 類名(unittest.TestCase):
	#注意,編寫測試方法時必須以test_打頭
	測試代碼
#運作測試
unittest.main()
           

運作測試後會出現結果

. 表示測試通過

E 表示有測試出現錯誤

F 表示測試出現斷言失敗

測試代碼中我們常會用到這些斷言方法:

方法 用途
assertEqual(a,b) 核實a==b
assertNotEqual(a,b) 核實a!=b
assertTrue(x) 核實x為True
assertFalse(x) 核實x為False
assertIn(item,list) 核實item在list中
assertNotIn(item,list) 核實item不在list中
類測試

我們常常會将一些方法封裝在一個類中,如何對類進行測試呢?和對方法進行測試并沒有太多差别。在對類進行測試時,我們會面對每一個測試方法都要建立一個類執行個體的情況,Python給我們提供了setUp()方法,在測試類的定義一個setUp方法,便可以避免重複建立對象的情況,用setUp建立的對象即可。

#導入unittest子產品
import unittest
#導入要測試的類
from 檔案名 import 類名
#建立一個繼承uniittest.TestCase的測試類(常以Test開頭命名)
class Test1(unittest.TestCase):
	#setUp方法
	def setUp(self):
		"""建立需要測試的類的對象"""
		self.xx = 類名(需要的參數)
	#測試方法	
	def test_1(self):
		#直接使用setUp中建立好的對象
		self.xx.方法
unittest.main()
           

關于Python的理論部分學習就告一段落,但理論部分的學習并不能代表什麼,隻有不停的coding,不斷的實戰,才能提高自己的水準,才代表你真正掌握了這些東西。

大家一起加油!

新手上路,若有錯漏,歡迎指教。