本文是接着上面python语法书继续的。之所以愤慨来写,算是从pyhon的内(语法)到外(外部程序之间的互动)来变化的。下面让我们开始新的旅程!
第十章 文件和异常
10.1 从文件中读取数据
1.读取整个文件:
先打开这个文件:with open(文件名)as x(自己起个名):
定义一个变量A——A=文件名.read(),再print这个变量就好咯
10.1.2 文件路径
分为相对路径和绝对路径。相对文件路径让 Python 到指定的位置去查找,而该位置是相对于当前运行的程序所在目录的。绝对路径就是完整的最详细的位置。
file_path = '/home/ehmatthes/other_files/text_files/filename.txt'
with open(file_path) as file_object:#给出绝对路径的例子
10.1.3逐行读取: for 循环—— for line in X:;如果需要把换行空格去掉,用line.rstrip()
10.1.4创建一个包含文件各行内容的列表
X.readlines() 从文件中读取每一行,并将其存储在一个列表中.
ps:读取文本文件时, Python 将其中的所有文本都解读为字符串。如果你读取的是数字,并要将其作为数值使用,就必须使用函数 int() 将其转换为整数,或使用函数 float() 将其转换为浮点数。
可使用方法 replace() 将字符串中的特定单词都替换为另一个单词 replace(‘a’,'b’)用b将a替换了。
10.2 写入、操作文件
with open(文件名,“模式”)as file:
这里的模式有几种:‘w’写入模式;‘r'读取模式;'a'附加模式;‘r+’读取+写入模式;
写入模式,如果文件名称相同,会自动清空先前同名文件。写入的方法:X.write()
ps:Python 只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数 str() 将其转换为字符串格式。
10.3 异常
异常是使用 try-except 代码块处理的。 try-except 代码块让 Python 执行指定的操作,同时告诉 Python 发生异常时怎么办。使用了 try-except 代码块时,即便出现异常,程序也将继续运行:显示你编写的友好的错误消息,而不是令用户迷惑的 traceback 。
try:
print(5/0)
except ZeroDivisionError:
print("You can't divide by zero!")
try-except语句块应该最好和else一起;错了就try-except,对了就else。
10.3.6 分析文本
1.计算文本数字个数——X.split()
方法 split() 以空格为分隔符将字符串分拆成多个部分,并将这些部分都存储到一个列表中。列表中的元素个数就是文本个数
2.使用多个文件,都差不多。多个文件用for循环。
10.4 储存数据——模块json
模块 json 让你能够将简单的 Python 数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。
10.4.1 json.dump()和json.load()
json.dump(文件数据,将要储存文件数据的文件名)
X.json——将X文件变为json的数据格式
import json
numbers = [2, 3, 5, 7, 11, 13]
filename = 'numbers.json'
with open(filename, 'w') as f_obj:
json.dump(numbers, f_obj)
json.load(文件名)——读取文件
学习了:如何使用文件;如何一次性读取整个文件,以及如何以每次一行的方式读取文件的内容;如何写入文件,以及如何将文本附加到文件末尾;什么是异常以及如何处理程序可能引发的异常;如何存储 Python 数据结构,以保存用户提供的信息,避免用户每次运行程序时都需要重新提供。
11 测试函数
Python 标准库中的模块 unittest 提供了代码测试工具。
单元测试: 用于核实函数的某个方面没有问题
测试用例: 是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。良好的测试用例考虑到了函数可能收到的各种输入,包含针对所有这些情形的测试。
全覆盖式测试 :包含一整套单元测试,涵盖了各种可能的函数使用方式。
新手可以先不考虑,后期进入学习。
彻底的进入了项目的实践过程,路漫漫其修远兮!!!有三个项目:
1.使用 Python 开发游戏
2.数据可视化
3.Web 应用程序
第一个我选择的是数据可视化。
1.1.使用matplotlib绘制简单的折线图 .pylot模块中有很多用于生成图标的函数. plt.show() 打开 matplotlib 查看器,并显示绘制的图形。.polt()用于生成数据的函数
import matplotlib.pyplot as plt
squares = [1, 4, 9, 16, 25]
plt.plot(squares)
plt.show()
1.2.修改标签文字和线条粗细——参数linewidth决定了绘制线条的粗细;fontsize决定了字体的大小;title,xlable,ylable;tick_params决定了刻度的样式,lablesize表示刻度的大小
import matplotlib.pyplot as plt
suqares=[2,4,5,6,7,8,9,10]
plt.plot(squares,linewidth=10)
plt.title("Fucking Mother