Python课堂笔记六 常用模块已经可以在单位实际项目中使用,可以实现运维自动化.无需手工备份文件,数据库,拷贝,压缩. 常用模块 time模块 time.time time.localtime time.strftime os模块:主要针对操作系统的一些方法,如:切换目录 sys模块:跟python解释器交互使用. shutil模块:针对目录或文件的复制,拷贝,重命名的操作等. hashlib模块:摘要算法模块. 1.文件的一致性校验 2.用户的加密认证 3.不可逆性,撞库,加盐 json/p…
面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以将多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 面向对象类成员 一.变量 变量包括:类变量和实例变量,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 类变量:属于类 实例变量:属于实例 class Role(object): #类变量,在内存…
python面向对象   面向对象编程(Object-Oriented Programming )介绍   对于编程语言的初学者来讲,OOP不是一个很容易理解的编程方式,虽然大家都知道OOP的三大特性是继承.封装.多态,并且大家也 都知道了如何定义类.方法等面向对象的常用语法,但是一到真正写程序的时候,还是很多人喜欢用函数式编程来写代码,特别是初学者,很容易陷入一个窘境就是 “我知道面向对象,我也会写类,但我依然没发现在使用了面向对象后,对我们的程序开发效率或其它方面带来什么好处,因为我使用函数…
1 消息队列 1.1 基本语法 消息队列:multiprocessing.Queue,Queue是对进程安全的队列,可以使用Queue实现对进程之间的数据传输:还有一个重要作用是作为缓存使用. Queue(maxsize = 0) method of multiprocessing, returns a queue obiect Queue(maxzize = 0)创建一个队列对象,maxsize 表示队列中最多存放消息的数量. 返回一个队列对象 1.1 队列对象操作方法: 1.1.1 put方…
进程间通信(IPC InterProcess Communication)是值在不同进程间传播或交换信息. IPC通过有管道(无名管道 和 有名 / 命名管道).消息队列.共享存储 / 内容.信号量.套接字socket.streams,其中socket和streams支持不同主机上的两个进程间通信 1 管道Pipe的基本语法 管道Pipe是multiprocessing中的方法Pipe(),也即multiprocessing.Pipe() multiprocessing.Pipe([duplex…
1 进程池Pool基本概述 在使用Python进行系统管理时,特别是同时操作多个文件目录或者远程控制多台主机,并行操作可以节约大量时间,如果操作的对象数目不大时,还可以直接适用Process类动态生成多个进程,几十个尚可,若上百个甚至更多时,手动限制进程数量就显得特别繁琐,此时进程池就显得尤为重要. 进程池Pool类可以提供指定数量的进程供用户调用,当有新的请求提交至Pool中时,若进程池尚未满,就会创建一个新的进程来执行请求:若进程池中的进程数已经达到规定的最大数量,则该请求就会等待,直到进程…
系统自带的fork模块创建的多进程是基于Linux或Unix平台的,而window平台并不支持: python中的multiprocess为跨平台版本的多进程模块,支持子进程.通信和共享数据.执行不同形式的同步,提供了Process(进程).Pool(进程池).Queue(队列).Pipe(管道).Lock等组件 1 Process进程 1.1 Process进程基础语法 创建进程的类:  Process([group [, target [, name [, args [, kwargs]]]…
6.1文件对象 所有Python对文件的操作都是基于对文件对象的操作.那么就从文件对象的创建说起.open()[file()]提供初始化输入输出的接口.open()成功打开文件时会返回一个文件对象. open()方法的语法: file_object=open(filename,access_mode,buffering) filename,表示要打开的文件名的字符串,可以是相对路径也可以是绝对路径. access_mode,表示打开方式.常见有'r'.'w'.'a',分别表示读模式,写模式,追加…
列表生成式 List Comprehensions 列表生成式是Python内置的非常简单却强大的可以用来创建list的生成式. 简单的数值范围的list可以使用一下方式生成: >>> list(range(1, 11)) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 稍微复杂的可以利用list生成式: >>> [x * x for x in range(1, 11)] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 循环…
Python与java.c++等都被视为一种面向对象的语言.通过创建自定义类,用于处理各种业务逻辑.面向对象有封装.继承.多态三个特征,这也是面子对象语言的通用特征. 1 封装 封装,是值向外部隐藏内部不必要的具体实现. 2 继承 继承,是值通过一次创建类,而以后再次创建的类与该类的方法有重合的,可以使用继承,这样就避免了再次编写,减少了代码的冗余.python支持多继承. 3 多态 多态,值能够同样的对不同的类型的对象调用相同的方法. 4 类 类,表示一组对象,每个对象都属于特定的类.如果一个…
ProcessPoolExecutor对multiprocessing进行了高级抽象,暴露出简单的统一接口. 异步非阻塞 爬虫 对于异步IO请求的本质则是[非阻塞Socket]+[IO多路复用]: """ 史上最牛逼的异步IO模块 """ import select import socket import time     class AsyncTimeoutException(TimeoutError):     ""&q…
4.2.3 列表的查找.排序.反转 list列表可以进行添加.删除操作,此外List列表还提供了查找元素的方法.list列表的查找提供了两种方式,一种是使用index方法返回元素在列表中的位置,另一种方法是使用关键字“in”来判断元素是否存在列表中. list=["apple","banana","grape","orange"] print(list.index("grape")) #打印grape的索引…
一:Python操作数据库的流程 二:开发环境准备 1:开发工具PyCharm 2:Python操作mysql的工具:需要安装Python-Mysql Connector,网址:https://sourceforge.net/projects/mysql-python/ ,下载完成后点击启动安装即可. 3:数据库桌面工具:SQLYog 三:Python操作数据库的两大对象之数据库连接对象——Connection connection主要用于建立Python与数据库之间的网络连接. 创建方法:My…
一:打开文件 open(name,mode,[bufferSize]) name:文件路径 mode:文件打开方式 二:文件读取 read()方法:可以一次读取文件的全部内容,Python把内容读到内存,用一个str对象表示. readline([size]):如果不传参,一次默认读取一行.如果size<一行长度,则读取size个字节.如果size>一行长度,则只读取一行. readlines():一次读取io.DEFAULT_BUFFER_SIZE行,约586行,以字符串数组的形式返回读取结…
一 函数对象 函数同样可以作为对象复制给一个变量,如下: f = abs; print(f(-10)) f = 'abs'; print(f) def add(a,b,f): return f(a) + f(b) print(add(-1,2,f)) map 函数, map函数接受一个函数变量,第二个参数为一个可迭代对象,最后返回一个迭代器,由于迭代器的惰性,需要用list()函数返回所有元素. def squart(n): return n* n; print(map(squart,range…
一.模块.包 什么是模块? 模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称. 什么是包? 包,package本质就是一个文件夹,和文件夹不一样的是它有一个__init__.py文件,包是从逻辑上来组织模块的,也就是说它是用来存放模块的,如果你想导入其他目录下的模块,那么这个目录必须是一个包才可以导入. 导入模块 import module #导入模块 from module import *…
文件读取 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创建一个文件,它包含精确到小数点后30位的圆周率值,且在小数点后每10位处都换行: pi_digits.txt 3.1415926535 8979323846 2643383279 下面的程序打开并读取这个文件,再将其内容显示到屏幕上: file_reader.py with open('pi_digits.txt') as file_object: contents = file_object.read() print(…
1.获取百度搜索结果页面主要是修改百度搜索url中的参数实现,例如查询的关键字为wd: 举例:https://www.baidu.com/s?wd=python",这样就可以查询到‘python’相关的内容 具体的参数届时可以参考:https://blog.csdn.net/ZustKe/article/details/83882345 2.通过python获取百度内容时,会出现返回的页面内容是“百度安全验证”的情况,像下面这样 这是因为设置header是没有设置accept参数,设置后就OK了…
定位到具体对象后,就需要对其进行操作,比如点击.输入内容等. 一般来说,webdriver中比较常用的操作对象的方法有下面几个 click 点击对象 send_keys 在对象上模拟按键输入 clear 清除对象的内容,如果可以的话 前面文章提到,以登录百度,输入查询条件,点击按钮为例.代码如下: # coding = utf-8 from selenium import webdriver browser = webdriver.Firefox() browser.get("http://ww…
一.类: 1. 面向对象. 2. 定义了新的对象类型. 定义了两个属性:name,pay 定义了两个方法:lastName,giveRaise…
重构: import multiprocessing import time class ClockProcesses(multiprocessing.Process): def __init__(self,value): multiprocessing.Process.__init__(self) #如果不写该语句,则新__init__()将会完全覆盖原来的定义, # super(ClockProcesses.self).__init__(self)#等同于上句功能 self.value =…
集合 Set,去重,关系测试:交.并.差等:无序 list_1=set(list_1), type(list_1) list_2=set([xxxxx]) 交集:list_1.intersectin(list_2), list_1 & list_2 并集:list_1.union(list_2), list_1 | list_2 差集:list_1.diffrence(list_2), list_1 – list_2 子集:list_1.issubset(list_2) 父集:list_1.is…
一.数学相关 1.绝对值:abs(-1) 2.最大最小值:max([1,2,3]).min([1,2,3]) 3.序列长度:len('abc').len([1,2,3]).len((1,2,3)) 4.取模:divmod(5,2)//(2,1) 5.乘方:pow(2,3,4)//2**3/4 6.浮点数:round(1)//1.0 二.功能相关 1.函数是否可调用:callable(funcname),注意,funcname变量要定义过 2.类型判断:isinstance(x,list/int)…
为获取网上免费代理IP,闲的无聊,整合了一下,免费从三个代理网站获取免费代理IP,目的是在某一代理网站被限制时,仍可从可以访问的其他网站上获取代理IP.亲测可用哦!^_^  仅供大家参考,以下脚本可添加函数,用于代理IP自动访问其他东西. import requests import urllib.request from bs4 import BeautifulSoup import random,time,re import random from urllib.request import…
集合是一个无序不重复元素的集.基本功能包括关系测试和消除重复元素.集合对象还支持union(联合),intersection(交),difference(差)和sysmmetric difference(对称差集)等数学运算. #集合,天生去重 s = set() #空的集合 s2 = {'1','2','3','4'} s3 = {'1','2','5'} #集合是无序的,所以没有办法通过下标取值 s2.add('1') #添加值,添加已存在的元素时集合不会改变 print('集合中1已存在,…
python中多进程与Linux 下的C基本相同.   fork的基本使用   先看最简单的例子: # coding: utf-8 import os def my_fork(): pid = os.fork() if pid == 0: print 'this is child, pid = %d, parent id = %d' % (os.getpid(), os.getppid()) elif pid > 0: print 'this is parent, pid = %d, child…
python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for filename in filelist: filepath=os.path.join(path,filename) if(os.path.isdir(filepath)): dirList(filepath) allfile.append(filepath) return allfile pri…
Python学习笔记(六) Ubuntu重置root密码 Ubuntu 16.4 目录结构 Ubuntu 命令讲解 1. Ubuntu重置root密码 启动系统,显示GRUB选择菜单(如果默认系统启动过程不显示GRUB菜单,则在系统启动时需要长按[Shift]键,显示GRUB界面) 按下[e]键进入命令编辑状态,到 linux /boot/vmlinuz-....... ro recovery nomodeset 所在行,将"ro recovery nomodeset"替换为"…
前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环境的搭建过程,以及Hello World的实现. 第二篇 VS2013中Python学习笔记[基础入门] 我简单学习使用了Python的几个基础的知识点. 第一个Web页面 第一步:首先打开VS2013开发工具 ,新建项目,选择Django Project模版. 修改项目名称,可以查看到项目的文件结…
Python学习笔记之九 为什么要有操作系统 管理硬件,提供接口. 管理调度进程,并且将多个进程对硬件的竞争变得有序. 操作系统发展史 第一代计算机:真空管和穿孔卡片 没有操作系统,所有的程序设计直接操控硬件 优点:程序员独享整个资源    缺点:浪费资源 第二代计算机:晶体管和批处理系统 优点:计算机资源利用 缺点:程序员共享资源,出现问题,找不出问题,影响开发效率 第三代计算机:集成电路芯片和多道程序设计 多道程序:cpu执行程序的过程中遇到I/O,不会原地等待,cpu会去执行其他命令,等到…