# 13. 函数与文件




### 背景

继续通过练习来熟悉函数。

这一节里我们将使用函数和文件的知识来重构第9节中的内容。


### 什么是重构

重构简单来说就是在不改变原有代码功能的情况下修改先前的代码实现。

测试同学一般都需要对重构提高警惕，这是因为

* 重构中如果没有单元测试进行辅助的话，代码可能会隐藏问题
* 重构的需求往往安排较少的测试进行回归，测试力度可能不够


### 利用已有的用例文件

不出意外你应该拥有名为```case001.txt```的文本文件，内容如下:

```
用例编号: itest001
用例名称: 登录成功
测试数据: 用户名:example;密码:example
测试步骤: 略
测试断言: 应该可以正确跳转到www.itest.info
```

### 代码实现

新建名为```read_case01.py```的文件，内容如下

```python

from sys import argv

script, file_path = argv

def read_file(file_name):
  file_obj = open(file_name)
  print(file_obj.read())
  file_obj.close()

print(f"读取文件: {file_path}")
read_file(file_path)

```

### 运行

在命令行中使用下面的命令去执行代码

```
$ python read_case01.py case001.txt

```

### 你应该可以看到

按照下面展示的情况进行输入，如果没有出错的话，你应该可以看到命令行窗口显示如下的内容

```
读取文件: case001.txt

用例编号: itest001
用例名称: 登录成功
测试数据: 用户名:example;密码:example
测试步骤: 略
测试断言: 应该可以正确跳转到www.itest.info
```

### 动手时间

* 如果要求你不能在```read_file```中进行打印，要完成上面的内容，你应该怎么做？
* 搜索一下什么是函数的返回值，了解一下基本概念




原始封面

![课程图片](https://images.unsplash.com/photo-1523289333742-be1143f6b766?w=300)


