python多进程
python多进程基本概念
Python中的多进程是通过multiprocessing包来实现的,和多线程的threading.Thread差不多,它可以利用multiprocessing.Process对象来创建一个进程对象
这个进程对象的方法和线程对象的方法差不多也有start(),run(),join()等方法,其中有一个方法不同Thread线程对象中的守护线程方法是setDeamon,而Process进程对象的守护进程是通过设置daemon属性来完成的
与多线程的共享式内存不同,由于各个进程都是相互独立的,因此进程间通信再多进程中扮演这非常重要的角色,Python中我们可以使用multiprocessing模块中的pipe、queue、Array、Value等等工具来实现进程间通讯和数据共享,但是在编写起来仍然具有很大的不灵活性
任务类型
同步与异步
同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去
异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态当有消息返回时 ...
文件和目录访问
文件
文件是数据的抽象和集合
文件是存储在辅助存储器上的数据序列
文件是数据存储的一种形式
文件展现形态:文本文件和二进制文件
文本文件 vs. 二进制文件
文件文件和二进制文件只是文件的展示方式
本质上,所有文件都是二进制形式存储
形式上,所有文件采用两种方式展示
文本文件
由单一特定编码组成的文件,如UTF-8编码
由于存在编码,也被看成是存储着的长字符串
适用于例如:.txt文件、.py文件等
二进制文件
直接由比特0和1组成,没有统一字符编码
一般存在二进制0和1的组织结构,即文件格式
适用于例如:.png文件、.avi文件等
基本使用文件打开和关闭
基本使用
123<变量名> = open(<文件名>, <打开模式>, encoding='utf-8')文件句柄 文件路径和名称 文本 or 二进制<变量名>.close()
打开模式
文件的打开模式
描述
‘r’
只读模式,默认值,如果文件不存在,返回FileNotFoundError
‘w’
覆盖写 ...
Pythonic的几个办法
Pythonic的几个办法
Python难点解析—-高级篇2.Pythonic
Python 实用冷门知识整理
这些年来,Python 开发者用Pythonic这个形容词来描述那种符合特定风格的代码。这种Pythonice风格,既不是非常严密的规范,也不是由编译器强加给开发者的规则,而是大家在使用Python语言协同工作的过程中逐渐形成的习惯。
确认python版本
1python --version
12345import sysprint(sys.version)3.7.6 (default, Jan 8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)]print(sys.version_info)sys.version_info(major=3, minor=7, micro=6, releaselevel='final', serial=0)
有很多种流行的Python运行时环境,例如,CPython、 Jython、 IronPython 以及PyPy等。
enumerate迭代
enumerate可以把各种迭 ...
python网络编程
网络编程
socket和urllib的关系
提供对多种不同类型套接字的低级访问,您可以使用这些套接字通过任何端口和协议进行通信。例如,您可以将其用于电子邮件、SSH、远程桌面等,也可以用于侦听端口(对于服务器)。几乎所有Python网络库,包括urllib,都以某种方式使用socket。在urllib专门用于套接字的特定用途,即HTTP(和可选的TLS)和FTP协议的客户端,通常(但不总是)使用端口80、443或21。
Python urllib、urllib2、urllib3用法及区别
urllib、urllib2是老版本,urllib3是新版本,requests是基于urllib3写的。其中urllib和urllib2是内置库
模块urllib和urllib2的功能差不多,简单来说urllib2是urllib的增强——urllib2更好一些,但是urllib中有urllib2中所没有的函数。对于简单的下载, urllib绰绰有余。如果需要实现HTTP身份验证或Cookie亦或编写扩展来处理自己的协议,urllib2可能是更好的选择。在Python2.x中主要为urllib和 ...
collection模块
Python的collections模块
collections —- 容器数据类型
Python3 collections模块使用详解
collections — Container datatypes namedtuple(): 生成可以使用名字来访问元素内容的tuple子类 deque: 双端队列,可以快速的从另外一侧追加和推出对象 Counter: 计数器,主要用来计数 OrderedDict: 有序字典 defaultdict: 带有默认值的字典 ChainMap 类似字典(dict)的容器类,将多个映射集合到一个视图里面
UserDict 封装了字典对象,简化了字典子类化
UserList 封装了列表对象,简化了列表子类化
UserString 封装了列表对象,简化了字符串子类化
collections.abc 抽象基类
tuple的几个特性:
不可变,iterable
拆包
tuple不可变不是绝对的
tuple比list好的地方 4.1 immutable的重要性:性能优化(元素 ...
logging模块
python的日志模块logging
Python Logging 指南
Python日志库logging总结-可能是目前为止将logging库总结的最好的一篇文章
python logging日志模块以及多进程日志
Python配置日志的几种方式
logging 模块
在部署项目时,不可能直接将所有的信息都输出到控制台中,我们可以将这些信息记录到日志文件中
这样不仅方便我们查看程序运行时的情况,也可以在项目出现故障时根据运行时产生的日志快速定位问题出现的位置
logging框架组成:
Loggers: 日志,暴露函数给应用程序,基于日志记录器和过滤器级别决定哪些日志有效。
LogRecord :日志记录器,将日志传到相应的处理器处理。
Handlers: 处理器, 将(日志记录器产生的)日志记录发送至合适的目的地。
常用类型有StreamHandler、FileHandler、NullHandler
Filters: 过滤器, 提供了更好的粒度控制,它可以决定输出哪些日志记录。
Formatters: 格式化器, 指明了最终输出中日志记录的布局。
logg ...
Spring注解_Spring入门篇
Spring入门篇
那些年,让我们一起着迷的Spring
http://spring.io
https://spring.io/projects/spring-framework
概述
spring是一个开源框架,是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架
-从大小与开销两方面而言Spring都是轻量的
-通过控制反转(IoC)的技术达到松耦合的目的
-提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发
-包含并管理应用对象的配置和生命周期,这个意义上是一种容器
-将简单的组件配置、组合成为复杂的应用,这个意义上是框架
>Java 程序员必须掌握的 5 个注解!
Spring作用
容器 ·
提供了对多种技术的支持 -JMS -MQ支持 -UnitTest
AOP(事务管理、日志等) ·
提供了众多方便应用的辅助类(JDBC Template等) ·
对主流应用框架(Hibernate等)提供了良好的支持
适用范围
构建企业应用(SpringMVC+Spring+Hibernate/ibat ...
机器学习_一元函数微积分(1)
写在前面,本系列主要是对下面这本书做的学习笔记
常用数学符号的 LaTeX 表示方法
Markdown 常用数学符号和公式
极限与连续
极限是微积分中最基本的概念,也是理解导数与积分等概念的基础。
可数集和不可数集
初等数学已经对元素数有限的集合进行的系统系统阐述,对无限集有些概念和规则不再适用,即使是常用的自然数集\mathbb {N}和实数集\mathbb {R}其性质,也需要重新定义
基数或势
集合A的元素数量称为其基数或势,记为|A|,对于集合A=\{1,3,5,7\},其基数为|A|=4
基数为有限值的集合称为有限集;基数为无限值的集合称为无限集
对于两个有限集,如果集合A是集合B的真子集,即A \subset B,则有|A| < |B|,而无限集的基数为+\infty,因此不能直接使用这个规则进行基数比较
考虑正整数集\mathbb {N}^+,令集合A_1为所有正奇数组成的集合,集合A_2为所有正偶数组成的集合。因此有
\mathbb {N}^+=A_1 \cup A_2 \\
A_1 \subset \mathbb {N}^+ \\
A_2 \subs ...
正则表达式学习
正则表达式概念
python正则表达式
深入理解正则表达式环视的概念与用法
资源 | 正则表达式的功法大全
在线正则表达式验证网站
概念定义
使用单个字符串来描述匹配某个句法规则的字符串,是对字符串操作的一种逻辑公式
应用场景
处理文本和数据,提高复杂文本分析的效率
正则表达式过程
依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;否则匹配失败
123456789101112# -*- coding: utf-8 -*import refrom IPython.core.interactiveshell import InteractiveShellInteractiveShell.ast_node_interactivity = "all" # 可同时输出多个结果pattern_s = r'imooc' # 定义正则表达式pattern_r = re.compile(pattern_s) # 编译正则表达式str1 = 'imooc book' # 需要查找的原始字符串match_ ...
python装饰器
函数基础函数定义
在 Python 中,函数是一等对象,编程语言理论家把“一等对象”定义为满足下述条件的程序实体:
在运行时创建
能赋值给变量或数据结构中的元素
能作为参数传给函数
能作为函数的返回结果
有了一等函数,就可以使用函数式风格编程。
函数式编程的特点之一是使用高阶函数——接受函数为参数,或者把函数作为结果返回的函数是高阶函数(higher-order function)。
在函数式编程范式中,最为人熟知的高阶函数有 map、filter、reduce 和 apply。
在 Python 3 中,map 和 filter 还是内置函数,但是由于引入了列表推导和生成器表达式,它们变得没那么重要了。
sum 和 reduce 的通用思想是把某个操作连续应用到序列的元素上,累计之前的结果,把一系列值归约成一个值。
all 和 any 也是内置的归约函数。
all(iterable): 如果 iterable 的每个元素都是真值,返回 True;all([]) 返回 True。
any(iterable): 只要 iterable 中有元素是真值,就返回 True;any([] ...