Python 知识量:10 - 41 - 150
读取二进制文件应使用b(rb)模式打开文件,可以访问文件的每个字节。例如检查一个文件是否是JPG图片文件:
# rw.py def check_jpg(fname): f=open(fname,'rb') head4=tuple(f.read(4)) return head4==(0xff,0xd8,0xff,0xe0)
运行结果为:
>>> ======================= RESTART: D:\PythonTestFile\rw.py ======================= >>> check_jpg('sea.jpg') True
JPG(JPEG)文件有固定的文件头,其前4个字节为(0xff,0xd8,0xff,0xe0),只需要检查是否满足该条件即可。
Python语言拥有许多的专用模块,可以方便的处理各类数据和任务。pickle模块可用来读写几乎任何数结构,还可以用于存储函数。使用时,通过函数pickle.dump()将数据结构存储到二进制文件中,之后再通过函数pickle.load()从文件中读取:
# rw.py import pickle def pf_set(): box={'name':'toy', 'id':23424, 'size':[3,4,6], 'position':[23,834,376,241]} f=open('box.dat','wb') pickle.dump(box,f) def pf_get(): f=open('box.dat','rb') newbox=pickle.load(f) return newbox
运行结果为:
>>> ======================= RESTART: D:\PythonTestFile\rw.py ======================= >>> pf_set() >>> pf_get() {'name': 'toy', 'id': 23424, 'size': [3, 4, 6], 'position': [23, 834, 376, 241]}
pickle模块执行的操作称为对象串行化,表现为将复杂的数据结构转换为字节流,即数据结构的串行化表示。
注意:pickle不能用于JPG等特殊格式的二进制文件,这类文件必须逐字节进行处理。
Python是一种强大的互联网编程语言,它为访问网络提供了强大的支持。可以使用urllib模块读取网页内容。例如读取百度首页的内容:
>>> import urllib.request >>> res=urllib.request.urlopen('https://www.baidu.com') >>> html=res.read() >>> html[:1000] b'<html>\r\n<head>\r\n\t<script>\r\n\t\tlocation.replace(location.href.replace ("https://","http://"));\r\n\t</script>\r\n</head>\r\n<body>\r\n\t<noscript> <meta http-equiv="refresh" content="0;url=http://www.baidu.com/"></noscript> \r\n</body>\r\n</html>'
通过urllib读取的内容与通过浏览器查看源代码看到的内容是一样的。将网页作为字符串读入变量后,就可以使用字符串函数提取和处理各种信息。可以通过html.parser模块实现基本的网页分析任务。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6