初学Python—常用模块
2017-04-16 22:06 Eilleen-G 阅读(225) 评论(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所指向的文件或目录的最后修改
浙公网安备 33010602011771号