天天看点

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,不断的实战,才能提高自己的水平,才代表你真正掌握了这些东西。

大家一起加油!

新手上路,若有错漏,欢迎指教。