pyhton实战之读取基金网站数据(一)
关键词:读取文件、OS模块、异常初识以及with as语法
上篇博客我们稍微接触了一下三方爬虫库,接下来我们具体实战一下,来抓取一下基金网站的数据。
在进入这个短系列之前先学习一下,必要的相关知识,所以今天的关键词如上。
1读取文件
学习教程应以官方文档为主,因此奉上官网地址:Input and Output¶,
我们简单学习一下,最基本的操作:如何读取文件:
f=open("./test.txt","r")
print(f.read())
f.close()
代码很简单,上述代码实现读取当前位置为test的txt文件,使用open方法获取这个文件的句柄,read方法读取。简单看下open方法:
可以看到第二个参数传入“r”,代表的是文件权限,表示读的权限,w为写权限,x为如果文件存在则创建失败,a为写入文件的时候是append模式,b是二进制模式,t是text模式。
2OS模块
OS模块官网地址16.1. os — Miscellaneous operating system interfaces — Python 3.6.5 documentation
OS模块是和我们操作系统进行交互的系统模块,可以获取和文件相关的参数,比如文件路径等信息。 我们不用考虑win和Linux,只管调用即可。OS模块会帮我们搞定一切.
这个模块没啥好讲的主要是一些API,注意在看文档时,并不是所有函数在所有版本的python中都支持。有些函数也只有在特定的操作系统中才支持。我们完全没必要也不可能一次性看完所有函数。记住常用的,其他的需要的时候来查。例如
os.getcwd():查看当前所在路径。
os.listdir(path):列举目录下的所有文件。返回的是列表类型。
os.environ['xxx'] 获得系统环境变量
os.getpid() 当前进程ID
os.getppid() 父进程ID (3.2开始才有)
3异常
在java中异常捕捉一般使用try catch finally来捕捉异常,在python中同样也有捕捉异常的方式,今天我们只是简单的了解一下他的语法,后面会详细记录异常操作的知识,比如自定义异常、抛出异常等:
这个代码肯定是有问题的,我们先暂时忽略,重点是python中处理异常的方式,在python中有两种处理异常的方式,一种是如上的语法,使用try except finally,第二种方式是使用with as语法,这是官方推荐用法,官方地址8. Compound statements — Python 3.6.5 documentation
要使用 with 语句,首先要明白上下文管理器这一概念。有了上下文管理器,with 语句才能工作。
下面是一组与上下文管理器和with 语句有关的概念。
上下文管理协议(Context Management Protocol):包含方法 __enter__() 和 __exit__(),支持
该协议的对象要实现这两个方法。
上下文管理器(Context Manager):支持上下文管理协议的对象,这种对象实现了
__enter__() 和 __exit__() 方法。上下文管理器定义执行 with 语句时要建立的运行时上下文,
负责执行 with 语句块上下文中的进入与退出操作。通常使用 with 语句调用上下文管理器,
也可以通过直接调用其方法来使用。
运行时上下文(runtime context):由上下文管理器创建,通过上下文管理器的 __enter__() 和
__exit__() 方法实现,__enter__() 方法在语句体执行之前进入运行时上下文,__exit__() 在
语句体执行完后从运行时上下文退出。with 语句支持运行时上下文这一概念。
上下文表达式(Context Expression):with 语句中跟在关键字 with 之后的表达式,该表达式
要返回一个上下文管理器对象。
语句体(with-body):with 语句包裹起来的代码块,在执行语句体之前会调用上下文管
理器的 __enter__() 方法,执行完语句体之后会执行 __exit__() 方法。
了解了基本概念之后,我们来看下with as用法:
可以看到with用法将业务封装了,可以便于后续重用。执行了 __enter__() 返回这个封装类的实体对象,最后会调用__exit__方法,如果返回Ture,则表示压制异常。exc_type为异常类型,exc_val为异常描述,exc_tb为异常跟踪信息。