1.从文件中读取数据
with open('文件名') as 文件别名:
文件变量 = 文件别名.read()
print(文件变量)
函数 open()接受一个参数:要打开的文件的名称,python在当前执行的文件所在的目录中查找指定的文件。函数 open()反回一个表示文件的对象。关键字 with在不需要访问文件后将其关闭。也可以调用 open() 和 close()来打开和关闭文件,但这样做如果程序出现bug,导致close()语句末执行,文件将不会关闭。
2.在使用上面的方法打开文件时,相比原始文件,该输入唯一不同的地方是末尾多了个空行, 因为read()到达文件末尾时反回一个空字符中,而将这个空字符串显示出来就是一个空行,要删除空行,可以在print 语句中使用 rstrip() 如:print(变量名.rstrip())
3.文件路径
当你打开不在程序文件所属目录中的文件,要让python打开不与程序文件位于同一个目录中的文件,需要提供文件路径,它让python到系统特定的位置去查找。
使用相对路径: with open('当前文件的子文件夹名/文件名') as 文件别名:
使用绝对路径:可以先定义一个变量,将绝对路径赋值给变量。
绝对路径变量 = ’绝对路径‘
with open(绝对路径变量) as 文件别名
4.逐行读取
with open(文件路径/文件名)as 文件别名:
for 行变量 in 文件别名:
print(行变量)
注:因文件中,每行末尾有一个换行符,而print()打印进也会加上一个换行符,因此打印出来的结果有空行,要消除这个空行,可以使用 rstrip()
5.创建一个包含文件各行内容的列表
使用关键字with时,open()反回的文件对象只在with代码块内可用。如果要在with代码块外访问文件的内容,可以with代码块内将文件的各行一个列表中,并在with代码块外使用该列表.
filename = 'pi_digits.txt'
with open(filename) as file_object:
lines = file_object.readlines()
for line in lines:
print(line.rstrip())
readlines()从文件中读取每一行,并将其存储在一个列表中,接下来,该列表存储到变量 lines中,在with代码块外依然能使用这个变量。
6.读取文件时,python将其中的所有文件都解读为字符串,如果读取的时数字,并要将其作为数值使用,就必须使用函数 int() 将其转换为整数,使用函数 float() 将其转换为浮点数。
7.写入文件
with open('filename','w') as file_object:
file_object.writ("写入内容")
注:open('打开的文件名','写入模式') r: 读模式 w:写模式 a:附加模式
注:python只能将字符串写入文本文件,要将数值存储到文本文件中,必须先使用函数 str() 将其转换为字符串格式。
8.写入多行,需要在writ()语句中包含换行符: \n
9.如果你要给文件添加内容,而不是覆盖原有内容,可以附加模式打开文件。用附加模式打开文件时,python不会在返回文件对象前清空文件,而你写入到文件的行都将添加到文件末尾,如果指定文件不成在,将创建一个空文件。
10.使用try-except代码块解决异常
try:
print(5/0)
except zeroDivisionError:
print("You can't diviede by zero!")
将导致错误的代码块放在一个try代码块中,如果try代码块中的代码运行没有问题,将跳过except代码块,如果try代码块中的代码导致了错误,python将查找这样的except代码块,并运行其中的代码,即其中指定的错误与引发的错误相同。try-except代码块后面还有其它代码,程序将接着运行
11.处理 FileNotFoundError异常
export FileNotFoundError:
处理语句
12.文本.split() 它以空格为分隔符将字符串拆分成多个部分,并将这些部分都存储到一个表中,结果是一个包含字符串中所有单词列表,可以再调用 len() 来计算列表长度
13.抛弃异常:
except 错误名:
pass
14.pass语句还充当了占位符,它提醒你在程序的某个地方什么都没做,并且以后也许要在这里做什么。
15.决定报告哪些错误
python的错误处理结构让你能够细致地控制用户分享错误信息的程序,要分享多少信息由自己决定。
16.存储数据
模块json让你能够将简单的python数据结构转储到文件中,并在程序再次运行时加载该文件中的数据,还可以使用json在python程序之间分享数据
17.注意:JSON(JavaScript Object Notation) 格式最初是为JavaScript开发的,但随后成了一种常见的格式.
18. json.dump()来存储这组数字,函数json.dump()接受两个参数:要存储的数据以及可用于存储的文件对象。
19.使用 json.load()加载存储在文件中的信息到内存。
20.重构:代码能正常运行,但可做进一步的改进,将代码分为一系列完成具体工作的函数,这样的过程叫重构。
21.测试代码
测试函数
单元测试和测试用例:python标准库中的模块 unittest 提供了代码测试工具,
单元测试用于核实函数的某个方面没有问题。
测试用例 是一组单元测试,这些单元测试一起核实函数在各种情况下的行为都符合要求。
全覆盖式测试 用例包含一整套单元测试,涵盖了各种可能的函数使用方式。
22.函数编写测试用例,可先导入模块 unittest 以及要测试的函数,再创建一个继承 unittest.TestCase的类,并编写一系列方法对函数行为的不同方面进行测试。