python进阶
超级大饭粒
学无止境,人生苦短,我也用python
展开
-
time与datetime与时间格式转化
time#time模块基本不用与取时间,取时间推进import timefor i in xrange(3): print i time.sleep(1)输出结果会1秒打印一个数字直到打完 0 1 2datetime1, 先导入datetime类 2, 通过datetime的now方法就获得当前所需要的时间 3, datetime还是有好多方法的,可以获取year, mon原创 2017-11-09 14:23:41 · 6225 阅读 · 0 评论 -
索引
MySQL索引的概念 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。 索引类别 1.普通索引 普通索引(由关键字 KEY 或 INDEX 定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHERE column =)或原创 2017-11-23 14:32:09 · 181 阅读 · 0 评论 -
多进程锁和共享内存
Lock组件当我们用多进程来读写文件的时候,如果一个进程是写文件,一个进程是读文件,如果两个文件同时进行,肯定是不行的,必须是文件写结束以后,才可以进行读操作。或者是多个进程在共享一些资源的时候,同时只能有一个进程进行访问,那就要有一个锁机制进行控制。 需求: 一个进程写入一个文件,一个进程追加文件,一个进程读文件,同时启动起来 我们可以通过进程的join()方法来实现,但是为了学习Lock,原创 2017-12-11 22:55:54 · 541 阅读 · 0 评论 -
python下的redis连接
redis的概念redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同原创 2017-11-24 15:19:23 · 498 阅读 · 0 评论 -
python下的manage 和进程池
Manage以上实现的数据共享的方式只有两种结构Value和Array。Python中提供了强大的Manage专门用来做数据共享的,其支持的类型非常多,包括,Value, Array,list,dict, Queue, Lock等。示例:import multiprocessingdef worker(dic,list): list += range(11,16) for i in原创 2017-12-12 23:11:10 · 1589 阅读 · 0 评论 -
多线程和线程锁
Python中提供了threading模块来对多线程的操作,多线程线程是应用程序中工作的最小单元。多线程是现实有两种方式: 方法一:将要执行的方法作为参数传给Thread的构造方法(和多进程类似) t = threading.Thread(target=action, args=(i,))方法二:从Thread继承,并重写run() 看源码:P = threading.Threadp.sta原创 2017-12-13 21:31:06 · 232 阅读 · 0 评论 -
python下redis的hash操作和其他常用操作
Hash类型操作Redis在内存中存储hash类型是以name对应一个字典形式存储的 hset(name,key,value) #name对应的hash中设置一个键值对(不存在,则创建;否则,修改) #参数: #name:redis的name #key:key1对应的hash中的key #value:value1对应的hash中的value #注:hsetx(n原创 2017-12-05 23:11:02 · 2016 阅读 · 0 评论 -
python下redis常用操作(上)
reids目前提供5种数据类型:string类型, list类型, set集合类型, 有序集合类型, hash类型string操作redis中的string在内存中都是按照一个key对应一个value来存储的。如: r.set(“name”, “liaochao”)set的使用方法: set(name, value, ex=None, px=None, nx=False, xx=False)原创 2017-11-27 11:03:33 · 1655 阅读 · 0 评论 -
多线程共享变量
多线程和多进程不同之处在于多线程本身就是可以和父进程共享内存的,这也是为什么其中一个线程挂掉以后,为什么其他线程也会死掉的道理。import threadingdef worker(l): l.append("niao") l.append("chao") l.append("dada")if __name__ =="__main__": l=list() l原创 2017-12-14 21:43:34 · 325 阅读 · 0 评论 -
python下的memcache连接
安装memecache http://memcached.org/latest 然后上传到服务器 cd /usr/local/src tar -zxvf memcached-1.x.x.tar.gz cd memcached-1.x.x ./configure && make && make test && make install启动memcache memcached -d -m原创 2017-12-06 23:40:51 · 714 阅读 · 0 评论 -
python下memcache的常用操作
存储命令: set/add/replace/append/prepend/cas 获取命令: get/gets 其他命令: delete/stats..add方法 添加一条键值对,如果已经存在的key,重复执行add操作会报异常。 replace方法 replace修改某个key的值,如果key不存在,则异常。 set :设置一个键值对,如果key不存在,则创建,如果key存在,则修改;原创 2017-12-07 22:28:23 · 857 阅读 · 0 评论 -
python的装饰器使用与实战
嵌套函数:函数及“变量”,将函数当作变量传入:import timedef bar(): time.sleep(2) print ("in the bar")def test1(func): start_time=time.time() func() #run bar stop_stime=time.time() print ("the fun原创 2018-01-03 15:13:20 · 295 阅读 · 0 评论 -
数据库的删除和更改操作
删除数据条件: 有些老师不好好上次,导致课程的及格率太低,最后名最差的5名老师将会被开除。#!/usr/bin/python# -*- coding:utf-8 -*-# @Time : 2017/11/23 0023 09:49# @Author : liaochao# @File : del_demo.pyimport codecsimport MySQLdbfrom DBU原创 2017-11-23 14:29:36 · 236 阅读 · 0 评论 -
数据库的插入和查询操作
在操作设计数据库之前,我们先要设计数据库表结构,我们就来分析分析经典的学生,课程,成绩,老师这几者他们之间的关系,我们先来分析各个主体他们直接有什么属性,并确定表结构,在实际开发过程中,根据自己的业务需要和属性,设计不同的表结构: Student 字段名 类型 是否为空 主键 描述 StdID int 否 是 学生ID StdName varchar(100) 否 学生姓名 Gende原创 2017-11-22 17:00:58 · 935 阅读 · 0 评论 -
python多进程
概念 进程是程序在计算机上的一次执行活动。当你运行一个程序,你就启动了一个进程。显然,程序是死的(静态的),进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成操作系统的各种功能的进程就是系统进程,它们就是处于运行状态下的操作系统本身;用户进程就不必我多讲了吧,所有由你启动的进程都是用户进程。进程是操作系统进行资源分配的单位。 它的思想简单介绍如下:在操作系统的管理下,所有正在运行原创 2017-12-09 00:15:06 · 407 阅读 · 0 评论 -
longgin
日志是我们排查问题的关键利器,写好日志记录,当我们发生问题时,可以快速定位代码范围进行修改。Python有给我们开发者们提供好的日志模块logging#从上往下日志级别一级级升高 debug ->info->warning->error->criticaimport logginlogging.debug('this is debug')logging.info('this is info me原创 2017-11-10 16:59:32 · 424 阅读 · 0 评论 -
commands模块
commands模块只使用与linux的shell模式下[root@geenk03 opt]# cat test.py#!/usr/bin/env pythonimport commandscmd = 'ls /home/'a = commands.getoutput(cmd)print (type(a))print (a)在上面我们在执行shell命令的时候,我们的shell命令可能执原创 2017-11-10 17:01:54 · 619 阅读 · 0 评论 -
sys模块
sys模块其实有很多功能的,那我们就介绍一些最常用的一些功能吧,这样对于大家来说更加容易上手:#这里的argv[0] argv[1] 相当于shell中的 $1 $2import sysprint('argv[0] = {0} argv [1] = {1}'.format(sys.argv[0], sys.argv[1]))在cmd下 D:\pyProject\class>py原创 2017-11-10 17:08:45 · 441 阅读 · 0 评论 -
os模块
os模块也是我们平时工作中很常用到的一个模块,通过os模块调用系统命令,获得路劲,获取操作系统的类型等都是使用该模块。下面我们就了解一下os模块通过os获取系统类型import osprint(os.name)如果是windows系统,os.name = ‘nt’ 如果是linux系统os.name = ‘posix’不同的操作系统是命令可能不一样。所以在使用系统命令之前,我们先要判断系统是li原创 2017-11-10 17:11:50 · 214 阅读 · 0 评论 -
json
Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式 在线解析网址:https://www.json.cn/json 四种方法: 处理文件: json load json dump处理字符串: json loads json dumpsload 或者load原创 2017-11-12 21:57:49 · 167 阅读 · 0 评论 -
python re的方法
正则对象的match方法match(string[, pos[, endpos]]) string:匹配使用的文本, pos: 文本中正则表达式开始搜索的索引。及开始搜索string的下标 endpos: 文本中正则表达式结束搜索的索引。 如果不指定pos,默认是从开头开始匹配,如果匹配不到,直接返回Noneimport re#每一个()是一个组,reg = re.compile(r'(原创 2017-11-15 09:20:11 · 1042 阅读 · 0 评论 -
安装MySQLdb与连接数据库
安装MySQLdbwin: 首先要确定自己已经安装pip 1、 查看是否安装: C:\Users\Administrator>pip -V pip 9.0.1 from d:\python27\lib\site-packages (python 2.7) 出现以上提示则证明已安装 2、 安装MySQLdb之前先要安装wheel,执行pip install wheel命令进行安装原创 2017-11-20 15:58:32 · 4271 阅读 · 0 评论 -
Mysql数据操作介绍
Mysql事务MySQL 事务主要用于处理操作量大,复杂度高的数据。比如,你操作一个数据库,公司的一个员工离职了,你要在数据库中删除他的资料,也要删除该人员相关的,比如邮箱,个人资产等。这些数据库操作语言就构成了一个事务。 在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务,所以很多情况下我们都使用innodb引擎。 事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么原创 2017-11-20 16:02:54 · 205 阅读 · 0 评论 -
python 正则实例
首先熟悉点正则里面的一些知识 .* 代表匹配任意字符,贪婪模式,就是尽可能的向后匹配 .*? 这个能阻止贪婪模式re 修饰符: 修饰符 描述 re.I 使匹配对大小写不敏感 re.L 做本地化识别(locale-aware)匹配 re.M 多行匹配,影响 ^ 和 $ re.S 使 . 匹配包括换行在内的所有字符 re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W原创 2017-11-15 16:27:24 · 256 阅读 · 0 评论 -
mysql数据连接池
python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接mysql数据库请求时,都是独立的去请求访问,相当浪费资源,而且访问数量达到一定数量时,对mysql的性能会产生较大的影响。因此,实际使用中,通常会使用数据库的连接池技术,来访问数据库达到资源复用的目的。 python的数据库连接池包 DBUtils: DBUtils是一套Python数据库连接原创 2017-11-21 13:58:02 · 510 阅读 · 0 评论 -
正则表达式分组与python收集系统ip
.* 代表匹配任意字符,贪婪模式,就是尽可能的向后匹配 .*? 这个能阻止贪婪模式re 修饰符: 修饰符 描述 re.I 使匹配对大小写不敏感 re.L 做本地化识别(locale-aware)匹配 re.M 多行匹配,影响 ^ 和 $ re.S 使 . 匹配包括换行在内的所有字符 re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B. re.X原创 2017-11-16 10:37:55 · 311 阅读 · 0 评论 -
正则表达式
正则解析网站:https://regex101.com/正则表达式模式 模式字符串使用特殊的语法来表示一个正则表达式: 字母和数字表示他们自身。一个正则表达式模式中的字母和数字匹配同样的字符串。 多数字母和数字前加一个反斜杠时会拥有不同的含义。 标点符号只有被转义时才匹配自身,否则它们表示特殊的含义。 反斜杠本身需要使用反斜杠转义。 由于正则表达式通常都包含反斜杠,所以你最好使用原始字符原创 2017-11-14 20:48:47 · 2406 阅读 · 0 评论