基础知识

文件

概念

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相关推荐

  1. [网摘学习]在Ubuntu上安装和配置OpenStack Nova之二

    再收藏一份Openstack的文章,这两天的操作与此相同.但其中出现的问题还需要查找原因.待个人继续学习研究. 原文参考:http://www.linuxde.net/2011/11/1599.htm ...

  2. 第 5 章 Nova - 025 - OpenStack 通用设计思路

    API 前端服务 每个 OpenStack 组件可能包含若干子服务,其中必定有一个 API 服务负责接收客户请求. 以 Nova 为例 nova-api 作为 Nova 组件对外的唯一窗口,向客户暴露 ...

  3. nova6的4g版能支持鸿蒙,鸿蒙公测新增6款手机,都是nova系列,包括一款4G手机

    原标题:鸿蒙公测新增6款手机,都是nova系列,包括一款4G手机 近期华为开启鸿蒙公测,成为了手机界的大新闻.收到推送的欢呼雀跃,没收到的还在苦等第二波推送.首批推送的机型只有15款,而且都是Mate ...

  4. 第 5 章 Nova - 041 - Resize Instance 操作详解

    Resize Instance 操作详解 Resize 的作用是调整 instance 的 vCPU.内存和磁盘资源. Instance 需要多少资源是定义在 flavor 中的,resize 操作是 ...

  5. nova ERROR (ClientException): 解决方法

    报错信息 ClientException: Unknown Error (HTTP 503) (Request-ID: req-c9ec29c6-cca5-4edc-9828-cd6494d2d36b ...

  6. 华为nova 2 Plus魔镜版818欢购热潮凶猛来袭

    "十万片研发原料.双金属复合材质.60纳米T处理微孔设计.晶圆抛光CMP工艺,正是这些共同铸就了这款美轮美奂.耀世而来的华为nova 2 Plus魔镜版手机."的确,也正因囊括了诸 ...

  7. openstack组件之nova

    一.nova介绍 nova是openstack 最核心的服务,负责维护和管理云环境的计算资源. 管理 VM 的生命周期 二.nova架构 nova 的架构比较复杂,包含很多组件. 这些组件以子服务(后 ...

  8. nova instance出错:message: Proxy error: 502 Read from server failed

    执行 $ nova resize instance1 时候出错: {"message": "Proxy error: 502 Read from server faile ...

  9. 第 5 章 Nova - 030 - Launch和Shut Off操作详解

    Launch Launch instance 应该算 Nova 最重要的操作. 1.客户(可以是 OpenStack 最终用户,也可以是其他程序)向 API(nova-api)发送请求:"帮 ...

  10. [To be translated] Nova:libvirt image 的生命周期

    翻译自:http://www.pixelbeat.org/docs/openstack_libvirt_images/ The main stages of a Virtual Machine dis ...

最新文章

  1. vs2017引入mysql_windows+vs2017+C语言 引入mysql.h对MYSQL数据库的操作
  2. 用 Python 可以实现侧脸转正脸?我也要试一下!
  3. Swift 异常处理
  4. linux扩文件系统大小,调整卷大小后扩展 Linux 文件系统 - Amazon Elastic Compute Cloud...
  5. 干货丨揭秘深度学习的核心:掌握训练数据的方法
  6. android开发 修改标题栏背景_基于.NET的APP开发方式中MobileForm的使用smobiler
  7. Array Sharpening CodeForces - 1291B(思维)
  8. OPENCV-7 学习笔记
  9. jQ效果:简单的手风琴效果
  10. java连接zookeeper_java 学习笔记(四) java连接ZooKeeper
  11. mysql读写分离java配置方法_springboot配置数据库读写分离
  12. 如何造数据——分分钟变成造数据大师
  13. mongoDB之监控工具mongotop
  14. ElasticSearch全文搜索引擎之Aggregation聚合查询(基于RestHighLevelClient)
  15. promise入门的准备工作-(尚硅谷教程笔记)
  16. Kali 暴力破解wifi密码
  17. PHP架构师必备技术视频合集
  18. HashMap为什么线程不安全?
  19. 网秦安全盾 原理分析
  20. 夫妻贷款买房需要注意什么

热门文章

  1. CollageIt - [照片拼贴,照片整合]
  2. 为什么把人称呼为“总”?
  3. python二维数组去重复_python 去除二维数组/二维列表中的重复行方法
  4. 近视眼学计算机好吗6,怎么会加重眼睛的近视,近视加重与6个原因有关
  5. 第一章 程序设计和C语言
  6. 面向行业智能,华为数据通信推动的2020之变
  7. ACM-ICPC 2018 南京赛区网络预赛 E. AC Challenge
  8. 【Nowcoder】2021牛客暑假集训营(第七场): xay loves trees 双指针 + 线段树 + 尺取
  9. 永磁同步电机驱动视频教程_矢量控制_手把手教你写代码_无感FOC_有感FOC_状态观测器_卡尔曼滤波_慧驱动
  10. 万物皆对象,Python的对象概述(简述)