nova-week2
基础知识
文件
概念
1.读写模式
- r 只读模式,只能读取和输出
- w只写模式(删除原文件,从头开始写)
- a只写模式(不影响原内容,在内容的结尾开始追加内容)
- wb只写模式+二进制数据操作
- w+可读可写模式
文件I/O基础函数及模式很详细
2.不同类型文件写入
- 图片(png或jpg)以’rb’模式写入
python读取图片的方法
读取及显示图片的详细方法 - 文字(txt或log)以w+'模式写入
- 视频(.mp4)以’rb’模式写入
imageio和cv2读取视频文件
测验
a=[1,5,2,4,3]
a.sort()
with open(r'C:\Users\lenovo\Desktop\test.txt','a') as f:for arr in a:f.write(str(arr))f.close()
with open(r'C:\Users\lenovo\Desktop\test.txt','a+') as f:f.seek(0,0)b=f.read(-2)f.write(str(b[::-1]))f.close()
注:
1.文件地址中的’'需要被转义,用r''或'\\'
解决
2.write()
函数只能写入str类型
3.'a/a+'
模式打开时光标在文档尾部,所以read读不出任何数据
4.seek(offset [,from])
函数,Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。
如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。
5.反转字符串的常见方法
reversed()
方法只能用于列表list,不能用于字符串
6.每次打开文件后,要记得用close()
关闭
函数
概念
1.定义一个函数(菜鸟教程)
你可以定义一个由自己想要功能的函数,以下是简单的规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
- 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None
def functionname( parameters ):"函数_文档字符串"function_suitereturn [expression]
2.函数封装
把你的代码的某一部分隐藏起来,设定为私有引用,只留下少数的函数接口来实现对应的功能,可以起到降低复杂度和保护代码隐私的作用
3.变量作用域
- 变量作用域是指变量能被访问的范围,由变量被定义的位置决定
- 就作用域而言,Python与C有着很大的区别,在Python中并不是所有的语句块中都会产生作用域。只有当变量在Module(模块)、Class(类)、def(函数)中定义的时候,才会有作用域的概念。
- 在作用域中定义的变量,一般只在作用域中有效。 需要注意的是:在if-elif-else、for-else、while、try-except\try-finally等关键字的语句块中并不会产成作用域。虽然是在if语句中定义的variable变量,但是在if语句外部仍然能够使用。
- 搜索变量名的优先级:局部作用域L > 嵌套作用域E > 全局作用域G > 内置作用域B
测验
#将上面的题目代码封装成一个函数,调用两次,第二次调用为第一次调用结果文件
def test(file):a=[1,5,2,4,3]a.sort()with open(file,'a') as f:for arr in a:f.write(str(arr))f.close()with open(file,'a+') as f:f.seek(0,0)b=f.read(-2)f.write(str(b[::-1]))f.close()
if __name__=="__main__":test(r"C:\Users\lenovo\Desktop\test.txt")test(r"C:\Users\lenovo\Desktop\test.txt")
爬虫实践
任务:获取example.com的正文内容和more的链接地址
import requests
from lxml import etree
def get_html(url):"获取网站的html代码并将其用lxml初始化,并返回"Html=requests.get(url)html=etree.HTML(Html.text)return html
def get_text(html):"获取html的正文部,并写入文件"with open(r"C:\Users\lenovo\Desktop\test.txt",'w')as f:txt=html.xpath("//h1/text()|//p/text()|//p/a/text()")f.write("正文部分:\n")for t in txt:f.write(t)f.write('\n')f.close()
def get_link(html):"获取html中的链接地址,并写入文件"with open(r"C:\Users\lenovo\Desktop\test.txt",'a')as f:link=html.xpath("//p/a/@href")f.write("链接地址:\n")for l in link:f.write(l)f.close()
if __name__=="__main__":html=get_html('http://www.example.com')get_text(html)get_link(html)
运行结果:
正文部分:
Example Domain
This domain is established to be used for illustrative examples in documents. You may use thisdomain in examples without prior coordination or asking for permission.
More information...
链接地址:
http://www.iana.org/domains/example
注:
1.下载第三方库直接在pycharm里下载file->settings->project:untitled->interpreter
2.url问题:需要在"www"前加上"http://"
3.用requests爬取,etree和xpath处理html代码
4.requests获取的是element
类型,通过html.text
转化为byte
类型再用etree.HTML处理
5.etree.xpath()
方法需要用到xpath语法
xpath语法基础
6.etree.xpath()
方法获得list
类型数据
7.改变字符串的编码的函数:.decode()
方法介绍_菜鸟教程
8.html里的换行是靠 < p> 实现的,而爬取的只是字符串,所以有换行
nova-week2相关推荐
- [网摘学习]在Ubuntu上安装和配置OpenStack Nova之二
再收藏一份Openstack的文章,这两天的操作与此相同.但其中出现的问题还需要查找原因.待个人继续学习研究. 原文参考:http://www.linuxde.net/2011/11/1599.htm ...
- 第 5 章 Nova - 025 - OpenStack 通用设计思路
API 前端服务 每个 OpenStack 组件可能包含若干子服务,其中必定有一个 API 服务负责接收客户请求. 以 Nova 为例 nova-api 作为 Nova 组件对外的唯一窗口,向客户暴露 ...
- nova6的4g版能支持鸿蒙,鸿蒙公测新增6款手机,都是nova系列,包括一款4G手机
原标题:鸿蒙公测新增6款手机,都是nova系列,包括一款4G手机 近期华为开启鸿蒙公测,成为了手机界的大新闻.收到推送的欢呼雀跃,没收到的还在苦等第二波推送.首批推送的机型只有15款,而且都是Mate ...
- 第 5 章 Nova - 041 - Resize Instance 操作详解
Resize Instance 操作详解 Resize 的作用是调整 instance 的 vCPU.内存和磁盘资源. Instance 需要多少资源是定义在 flavor 中的,resize 操作是 ...
- nova ERROR (ClientException): 解决方法
报错信息 ClientException: Unknown Error (HTTP 503) (Request-ID: req-c9ec29c6-cca5-4edc-9828-cd6494d2d36b ...
- 华为nova 2 Plus魔镜版818欢购热潮凶猛来袭
"十万片研发原料.双金属复合材质.60纳米T处理微孔设计.晶圆抛光CMP工艺,正是这些共同铸就了这款美轮美奂.耀世而来的华为nova 2 Plus魔镜版手机."的确,也正因囊括了诸 ...
- openstack组件之nova
一.nova介绍 nova是openstack 最核心的服务,负责维护和管理云环境的计算资源. 管理 VM 的生命周期 二.nova架构 nova 的架构比较复杂,包含很多组件. 这些组件以子服务(后 ...
- nova instance出错:message: Proxy error: 502 Read from server failed
执行 $ nova resize instance1 时候出错: {"message": "Proxy error: 502 Read from server faile ...
- 第 5 章 Nova - 030 - Launch和Shut Off操作详解
Launch Launch instance 应该算 Nova 最重要的操作. 1.客户(可以是 OpenStack 最终用户,也可以是其他程序)向 API(nova-api)发送请求:"帮 ...
- [To be translated] Nova:libvirt image 的生命周期
翻译自:http://www.pixelbeat.org/docs/openstack_libvirt_images/ The main stages of a Virtual Machine dis ...
最新文章
- vs2017引入mysql_windows+vs2017+C语言 引入mysql.h对MYSQL数据库的操作
- 用 Python 可以实现侧脸转正脸?我也要试一下!
- Swift 异常处理
- linux扩文件系统大小,调整卷大小后扩展 Linux 文件系统 - Amazon Elastic Compute Cloud...
- 干货丨揭秘深度学习的核心:掌握训练数据的方法
- android开发 修改标题栏背景_基于.NET的APP开发方式中MobileForm的使用smobiler
- Array Sharpening CodeForces - 1291B(思维)
- OPENCV-7 学习笔记
- jQ效果:简单的手风琴效果
- java连接zookeeper_java 学习笔记(四) java连接ZooKeeper
- mysql读写分离java配置方法_springboot配置数据库读写分离
- 如何造数据——分分钟变成造数据大师
- mongoDB之监控工具mongotop
- ElasticSearch全文搜索引擎之Aggregation聚合查询(基于RestHighLevelClient)
- promise入门的准备工作-(尚硅谷教程笔记)
- Kali 暴力破解wifi密码
- PHP架构师必备技术视频合集
- HashMap为什么线程不安全?
- 网秦安全盾 原理分析
- 夫妻贷款买房需要注意什么
热门文章
- CollageIt - [照片拼贴,照片整合]
- 为什么把人称呼为“总”?
- python二维数组去重复_python 去除二维数组/二维列表中的重复行方法
- 近视眼学计算机好吗6,怎么会加重眼睛的近视,近视加重与6个原因有关
- 第一章 程序设计和C语言
- 面向行业智能,华为数据通信推动的2020之变
- ACM-ICPC 2018 南京赛区网络预赛 E. AC Challenge
- 【Nowcoder】2021牛客暑假集训营(第七场): xay loves trees 双指针 + 线段树 + 尺取
- 永磁同步电机驱动视频教程_矢量控制_手把手教你写代码_无感FOC_有感FOC_状态观测器_卡尔曼滤波_慧驱动
- 万物皆对象,Python的对象概述(简述)