初学Python—常用模块
2017-04-16 22:06 Eilleen-G 阅读(201) 评论(0) 编辑 收藏 举报1 随机数 验证码
import random from cPickle import dumps, load print random.random() print random.randint(1,5)#包括1 和5 print random.randrange(1,5)#不包括5 #######验证码############3 for i in range(6): if i==random.randint(1,10): print random.randint(1,10) else: temp=random.randint(65,90) print chr(temp)#一列显示 code=[] for i in range(6): if i==random.randint(1,10): code.append(str(random.randint(1,10))) else: code.append(chr(random.randint(65,90))) print''.join(code)#格式化比+=效率高 print code GVGJLU
2 MD5加密****************
import hashlib hash=hashlib.md5() hash.update('admin') print hash.hexdigest()#21232f297a57a5a743894a0e4a801fc3存到数据库里 密码就写这个 print hash.digest()#长度不一样
3 序列化 pickle json
######序列化和json()(序列化 Python与Python之间传输数据) ###把一个对象(列表,字典,yield等),通过Python特有机制序列化成字符串,序列化后还可以进行反序列化,以特殊2进制值加密的过程 import pickle#(Python 能序列化字典 链表 所有 多 不可读) #序列化 li=['Eilleen','11','22','Giulio'] dumpsed=pickle.dumps(li) print dumpsed print type(dumpsed)#<type 'str'> #反序列化 loadsed=pickle.loads(dumpsed) print loadsed print type(loadsed)#<type 'list'> #####3把序列化后的字符串放入文件中去掉‘s’ pickle.dump(li,open('D:/temp.pk','w')) result=pickle.load(open('D:/temp.pk','r')) print result import json#(所有语言,能序列化字典 等一些常规化 少,可读) li=['qwer','11','22','asdf'] dumpsed=json.dumps(li) print dumpsed print type(dumpsed)#<type 'str'> #反序列化 loadsed=json.loads(dumpsed) print loadsed print type(loadsed)#<type 'list'> #####3把序列化后的字符串放入文件中去掉‘s’ json.dump(li,open('D:/temp.pk','w')) result=json.load(open('D:/temp.pk','r')) print result#[u'qwer', u'11', u'22', u'asdf']
4 re(正则表达式)
########re########正则表达式 import re result1=re.match('\d+','123jedwkjcfw29832974fnfckjcbjb') print result1 print result1.group()#开头有就显示。123 result2=re.search('\d+','123jedwkjcfw29832974fnfckjcbjb') print result2 print result2.group()#整个找,找到就停123 ###################################但是都找到一组,下一个不匹配就停止 result1=re.match('\d+','jedwkjcfw29832974fnfckjcb,jb') if result1:###(如果开头没有匹配上就显示None,就不是一个对象没有group) print result1.group()#开头有就显示。 else: print 'nothing'####nothing result2=re.search('\d+','jedwkjcfw29832974fnfckjcb,jb') print result2 print result2.group()#整个找,找到就停29832974 #################################### result3=re.findall('\d+','123jedwkjc3r43fw29832974fnfc333kjcb467jb') print result3#['123', '3', '43', '29832974', '333', '467'] ######################################### com=re.compile('\d+')#只编译一次, print com.findall('jcodchihdkk1111hcihdvdk89898')#可以匹配N次 print com.findall('123224435nfeknvn0999979786') print com.findall('44697dfhjdbvszkvhk,3596846') print com.findall('ncakjefhk3865925jfsdvdjhkvjebhv') #####################$$####################### result4=re.search('(\d+)jhfhfj(\d+)','ghgfh1242jhfhfj4657dvzjbv') result5=re.search('(\d+)\w*(\d+)','ghgfh1242jhfhfj4657dvzjbv') print result4.group()#1242jhfhfj4657 print result4.groups()#('1242', '4657') 只找括号里面的东西 print result5.group()#1242jhfhfj4657 print result5.groups()#('1242', '7') ###字符\d \w \t .除了回车意外的所有字符 ###次数*(大于等于0) +(大于等于1)?(0或者1) {m}次数{m,n}范围都包括
5 time
import time from test.test_datetime import DAY from ssl import cert_time_to_seconds #1.时间戳 1970年1月1日之后的秒 #2 元组,包含了 年,月,日星期等 ,结构 #3,格式化的字符串 2014-11-11 11:11 print time.time() print time.mktime(time.localtime())#结构化转时间戳 print time.gmtime()#可加时间戳参数 print time.localtime()#可加时间戳参数 print time.strptime('2017-4-19', '%Y-%m-%d') print time.strftime('%Y-%m-%d')##########常用 print time.strftime('%Y-%m-%d',time.localtime())#2017-04-19 print time.asctime()#Wed Apr 19 22:08:15 2017 print time.asctime(time.localtime()) print time.ctime(time.time())
''' 注意到datetime是模块,datetime模块还包含一个datetime类,通过from datetime import datetime导入的才是datetime这个类。 如果仅导入import datetime,则必须引用全名datetime.datetime。 datetime.now()返回当前日期和时间,其类型是datetime。 ''' import datetime datetime.date#表示日期的类,常用的属性有year,month,DAY datetime.time#表示时间的类,常用的属性有hour minute,cert_time_to_seconds print datetime.datetime.now()-datetime.timedelta(days=5,hours=5)#表示时间间隔,即两个时间点的长度。 print datetime.datetime.now()#表示时期时间获取当前的时间和日2017-04-20 10:24:44.633000 now=datetime.datetime.now() print(now.strftime('%a, %b %d %H:%M'))#Thu, Apr 20 10:24#datetime转成str print datetime.datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')#str转成datetime
6 sys
import sys sys.argv #命令行参数Lst,第一个元素是程序本身路径 sys.exit(0)#退出程序正常退出是exit(0) sys.version#获取pyth解释程序的版本信息 sys.maxint #最大的Int值 sys.maxunicode#最大的unicode值 sys.path##返回模块的搜索路经 初始化时使用Pythonpath sys.platform#返回操作系统平台名称 sys.stdout.write('please:') val=sys.stdin.readline()[:-1] print val
7 os
import os os.getcwd()#获取当前的工作目录 os.chdir('dirname')#改变当前脚本工作目录 os.curdir#返回当前目录:('.') os.pardir#获取当前目录的父目录字符串名:('..') os.makedirs('dirname1/dirname2')#可生成多层递归目录 os.removedirs('dirname1')###若目录为空则删除,并递归到上一层 os.mkdir('dirname')#生成单级目录 os.rmdir('dirname')#删除单级空目录。若目录不为空则无法删除 os.listdir('dirname')#列出指定目录下的所有文件和子目录 os.remove()#删除一个文件 os.rename("oldname","newname")#重命名文件目录 os.star('path/filename')#获取文件目录信息 os.sep#输出操作系统特点的路径分隔符,win下为“\\” os.linesep#输出当前平台使用的行终止符,win下为“\t\n” os.pathsep#输出用于分割文件路径的字符串 os.name#输出字符串指示当前使用平台 os.system("bash command")#允许shell命令,直接显示 os.environ#返回path规范化的绝对路径 os.path.split(path)#将path分割成目录和文件名二元组返回 os.path.dirname(p)#返回path的目录 os.path.basename(path)#返回path最后的的文件名 os.path.exists(path)##如果path是绝对路径 则返回true os.path.isfile(path)#如果path是一个存在的文件则返回true os.path.isdir()#如果path是一个存在的目录则返回true os.path.join(path1[,path2[, ...]])#将多个路径组合后返回 os.path.getatime(path)#返回path所指向的文件或目录的最后存取 os.path.getmtime(path)#返回path所指向的文件或目录的最后修改