一.文件的操作 文件句柄 = open('文件路径+文件名', '模式') 例子 f = open("test.txt","r",encoding = “utf-8”) 分析:这里由于python文件和test.txt文件在同一文件夹里,不需要写test的绝对路径 如果要写绝对路径可以这样写 f = open(file = "d:/python/test.txt","r",encoding = “utf-8”) 文件打开模式有…
本节内容 操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线程 语法 join 线程锁之Lock\Rlock\信号量 将线程变为守护进程 Event事件 queue队列 生产者消费者模型 Queue队列 开发一个线程池 进程 语法 进程间通讯 进程池 操作系统发展史 手工操作(无操作系统) 1946年第一台计算机诞生--20世纪50年代中期,还未出现操作系统,计算机工作采用手工操作方式. 手工操作程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把…
上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象…
概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是复制粘贴 即:将之前实现的代码块复制到现需功能处. while True: if cpu利用率 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 硬盘使用空间 > 90%: #发送邮件提醒 连接邮箱服务器 发…
python 多进程:多进程 先上代码: pool = threadpool.ThreadPool(10) #建立线程池,控制线程数量为10 reqs = threadpool.makeRequests(get_title, data, print_result) #构建请求,get_title为要运行的函数,data为要多线程执行函数的参数 #最后这个print_result是可选的,是对前两个函数运行结果的操作 [pool.putRequest(req) for req in reqs] #…
低版本: #!/usr/bin/env python import threading import time import queue class TreadPool: """ 将线程加入到队列中作为资源去完成任务 优点:简单好写容易理解 缺点:太尼玛多了..... """ def __init__(self, maxsize): self.maxsize = maxsize self._q = queue.Queue(maxsize) for…
基础篇 1.Python基础之初识python 2.Python数据类型之字符串 3.Python数据类型之列表 4.Python数据类型之元祖 5.Python数据类型之字典 6.Python Set集合,函数,深入拷贝,浅入拷贝,文件处理 7.Python之常用模块 8.python正则表达式 9.python面向对象编程 10.python之socket编程 11.python进程.线程.协程 11.python-nmap使用及案例 进阶篇 1.浅析tornado web框架 2.djan…
Python标准库为我们提供了threading(多线程模块)和multiprocessing(多进程模块).从Python3.2开始,标准库为我们提供了concurrent.futures模块,它提供了 ThreadPoolExecutor 和 ProcessPoolExecutor 两个类,实现了对threading和multiprocessing的更高级的抽象,对编写线程池/进程池提供了直接的支持. Executor是一个抽象类,它不能被直接使用.但是它提供的两个子类ThreadPoolE…
一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器.Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus.他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言. 最新的TIOBE排行榜,Python赶超PHP占据第4, Python崇尚优美.清晰.简单,是一个…
一.python环境的搭建 1.window下环境的搭建 (1).在 https://www.python.org/downloads/ 下载自己系统所需要的python版本 (2).安装python,可以默认路径安装也可以修改安装路径(C:\Python27 默认安装路径) (3).设置环境变量,我的电脑--属性----高级系统设置----环境变量--系统变量下面的path中添加上python的安装路径 (4).通过cmd进入命令行窗口,输入python ,显示python的相关版本信息表明p…
入门知识: 一.关于作用域: 对于变量的作用域,执行声明并在内存中存在,该变量就可以在下面的代码中使用. if 10 == 10: name = 'allen' print name 以下结论对吗? 外层变量,可以被内层变量使用 内层变量,无法被外层变量使用 以上结论,对于其他语言适用,对于python 不适用 ** 记住:python,只要内存里存在,则就能适用 (栈 ) 二.三元运算: 1).普通循环: if name == "test": name = "坏人"…
import threading import sys import time def showa(): while True: lockc.acquire() #获取对方的锁,释放自己的锁 print('a',end='') sys.stdout.flush() #释放缓冲区 locka.release() time.sleep(0.2) def showb(): while True: locka.acquire() print('b',end='') sys.stdout.flush()…
直接搜索 Python,进入官网,找到下载,根据个人电脑操作系统下载相应的软件.小编的是windows os .下载python-2.7.9.msi 安装包  双击安装程序,进入安装步骤.在安装过程中,可以自定义要安装的路径,以及安装组件.安装过程如图所示:  安装完后,要进行环境变量的配置.首先,进入系统变量设置界面:计算机  --属性--高级系统设置--高级 --环境变量.在系统变量中找到 path变量,在其变量值中,添加  Python的安装路径.比如小编的是:F:\Files_insta…
版本一: #!/usr/bin/env python # -*- coding:utf-8 -*- import Queue import threading class ThreadPool(object): def __init__(self, max_num=20): self.queue = Queue.Queue(max_num) for i in xrange(max_num): self.queue.put(threading.Thread) def get_thread(self…
一.线程 ​ 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本:进程是程序的一次执行活动,属于动态概念.在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行.这是这样的设计,大大提高了CPU的利用率.进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在CPU上实现多道编程而提出的. ​ 有了进程…
字符串切片操作 切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割. 注意: 数是可选的,而冒号是必须的. consequence[start:end:step] 切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束,第三个数(冒号之后)表示切片间隔数. 如果不指定第一个数,Python就从序列首开始.如果没有指定第二个数,则Python会停止在序列尾. ☛ (序列首与序列尾 依据step方向决定 !) 注意: 返回的序列从开始位置开…
abs() 求绝对值 i = abs(-100) print(i) # 100 all() 循环里面的参数 如果每个元素都为真,那么all返回值为真  假: 0 False None "" [] {}  ( 0 None 空值 即为假! ) ret = all([True,1,]) print(ret) # True any() 只要其中一个为真,结果为真True.区别于all() ret = any([0,False,'',{},1]) print(ret) # True ascii…
文件操作 open函数,该函数用于文件处理 操作文件时,一般需要经历如下步骤: (1)打开文件 (2)操作文件 一.打开文件 文件句柄 = open('文件路径', '模式','编码') 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r ,只读模式[默认] w,只写模式[不可读:不存在则创建:存在则清空内容!] x, 只写模式[不可读:不存在则创建,存在则报错] a, 追加模式[可读:   不存在则创建:存在则…
前情提要 1. 作用域 在python中,函数会创建一个新的作用域.python开发者可能会说函数有自己的命名空间,差不多一个意思.这意味着在函数内部碰到一个变量的时候函数会优先在自己的命名空间里面去寻找. python中的作用域分4种情况: L:local,局部作用域,即函数中定义的变量: E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的: G:globa,全局变量,就是模块级别定义的变量: B:built-in,系统固定模块里面的变量,比如…
正则表达式的基础 正则表达式并不是Python的一部分. 正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大. 得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于不同的编程语言实现支持的语法数量不同. 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现. 元字符 元字符: . ^ $ * + ? { […
反射 说反射之前先介绍一下__import__方法,这个和import导入模块的另一种方式 1. import commons 2. __import__('commons') 如果是多层导入: 1. from list.text import commons 2. __import__(' list.text.commons',fromlist=True) #如果不加上fromlist=True,只会导入list目录 实例: # lib - commons.py NAME = 'Maria'…
目录 一.进程与线程区别 1.1 什么是线程 1.2 什么是进程 1.3 进程与线程的区别 二.Python GIL全局解释器锁 三.线程 3.1 threading模块 3.2 Join & Daemon 3.3 线程锁(互斥锁Mutex) 3.4 RLock(递归锁) 3.5 Semaphore(信号量) 3.6 Events 3.7 Queue队列 3.8 生产者消费者模型 四.进程 4.1 Process 4.2 Lock 4.3 Semaphore 4.4 Event 4.5 Queu…
模块:os.sys.time.logging.json/pickle.hashlib.random.re 模块分为三种: 自定义模块 第三方模块 内置模块 自定义模块 1.定义模块 将一系列功能函数或常量封装为一个独立的.py或多个.py文件. 2.导入模块 import module from module.xx import yy from module.xxxxx import as rename 对于难于编写可以将其重新命名为一个新的模块名字 from module.xx import…
一.基础 1.编码 UTF-8:中文占3个字节 GBK:中文占2个字节 Unicode.UTF-8.GBK三者关系 ascii码是只能表示英文字符,用8个字节表示英文,unicode是统一码,世界通用码,规定采用2个字节对世界各地不同文字进行编码,gbk是针对中国汉字提出的编码标准,用2个字节对汉字进行表示.utf8是对unicode的升级改进版,但是unicode到utf-8并不是直接的对应. UTF-8最大的一个特点,就是它是一种变长的编码方式.它可以使用1~4个字节表示一个符号,根据不同的…
一.开发简介 1.开发:      开发语言:               高级语言:python.JAVA.PHP.C#..ruby.Go-->字节码                低级语言:C.汇编-->机器码 2.语言之间的对比: PHP类:适用于写网页,局限性 JAVA\Python:可以写网页,也可以写后台 JAVA执行效率高,开发效率低 Python 执行效率低,开发效率高 3.Python种类: JPython Cpython IronPython JavaScriptPytho…
一 . 管道 (了解) from multiprocessing import Process, Pipe def f1(conn): # 管道的recv 里面不用写数字 from_main_process = conn.recv() print('我是子程序') print(from_main_process) if __name__ == '__main__': # 创建一个管道,返回管道的两端conn1 和 conn2 但是只能在一边发消息,另一端接消息,自己这一段是不能接的 conn1,…
一.python生成器 python生成器原理: 只要函数中存在yield,则函数就变为生成器函数 #!usr/bin/env python # -*- coding:utf-8 -*- def xrange(): ') yield 1 ') yield 2 ') yield 3 r = xrange() #不执行,产生一个生成器 print(r) #<generator object f1 at 0x0000017D4A1D1CA8> re = r.__next__() print(re)…
一.运算符 1.算数运算符 +.-.*./.%(求余数).//(取整数部分) python2.x中,如果计算浮点数其中一个数字必须是浮点数否则按整数计算: 如python2.7中:print 9/2   结果是4 python2.7中:print 9.0/2  结果是4.5 python3.0中:print 9/2 结果是4.5 那么怎么在python2.7中让9/2输出4.5呢?可以通过下面的代码实现: from __future__ import division print 9/2 2.…
#!usr/bin/env python # -*- coding:utf-8 -*- # 一.元素分类 # # 有如下值集合 [11,22,33,44,55,66,77,88,99,90...], # 将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中. # 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值} li = [11,22,33,44,55,66,77,88,99,100,101] dic = {'k1':[],'k2':…
python的作用域与javaScript是一样的,参考:http://www.cnblogs.com/sunshuhai/p/9112578.html 一.python是以函数作为作用域的 if 1==1: xo = 123 print(xo) #输出:123 xo = "alex" def f1(): print(xo) def f2(): xo = "xxoo" f1() f2() #输出:alex  二.python函数是有内层向外查找的 li=[] for…