码迷,mamicode.com
首页 > 其他好文 > 详细

重修课程day18(模块2)

时间:2017-09-13 01:49:00      阅读:279      评论:0      收藏:0      [点我收藏+]

标签:日期   nbsp   name   shell   target   运行   choice   val   type   

一 collections模块 :数据类型模块

 namedtuple:可命名元组

p=collections.namedtuple(‘p‘,[‘x‘,‘y‘])
a=p(1,2)
print(a.x+a.y)

 deque:双端队列 1 append:后添加;2 appendleft:前添加;3 pop:从后向前取值;4   popleft:从前到后取值

q=collections.deque([1,2,3,4])
q.append(5)  #后面添加
q.appendleft(7)  #第一个位置添加
q.pop()     #最后一个位置读取
q.popleft()    #第一个把位置开始读取
print(q)

 ordereddict:创建有序的字典

# d=collections.OrderedDict([(‘a‘,1),(‘b‘,2),(‘d‘,3)])
# for i in d.items():print(i)

 defaultdict:默认字典的value值

# values = [11, 22, 33,44,55,66,77,88,99,90]
# dic=collections.defaultdict(list)
# for l in values:
#     if l>66:
#         dic[‘k1‘].append(l)
#     else:
#         dic[‘k2‘].append(l)
# print(dic)

 counter计算字符出现的次数

print(collections.Counter(‘asasfewruvs‘))

二 time模块:时间模块

 time.time():当前时间戳   (计算机识别的时间)   从1970年1月1日00:00:00开始计算

# print(time.time(

 time.strftime():时间字符串  结构化时间转成字符串时间   #(人类识别的时间)

# print(time.strftime(‘%Y-%m-%d‘))

 time.localtime():结构化时间(计算国内时间)   时间戳装成结构化时间(计算国内时间)

# print(time.localtime())

 time.gmtime():结构化时间(计算国际时间)   时间戳转换成结构化时间(计算国际时间)

# print(time.gmtime())

 time.mktime():结构化时间转成时间戳   (机器识别的时间)

# print(time.mktime(time.localtime()))

 time.strptime():字符串时间转成结构化时间 (计算时间)

# time_1=time.strftime(‘%Y-%m-%d‘)
# print(time.strptime(time_1,"%Y-%m-%d"))

 time.asctime():结构化时间转成字符串时间(转换后有固定的格式)

# print(time.asctime())

 time.ctime():时间戳转成字符串时间(转换后有固定的格式)


# print(time.ctime())

计算时间差:


# import time
# end=time.time()
# start=time.mktime(time.strptime(‘2017-09-11 08:30:00‘,‘%Y-%m-%d %H:%M:%S‘))
# end_start=end-start
# cha_time=time.localtime(end_start)
# print(‘已经过去了%s年%s月%s天%s小时%s分种%s秒‘%(cha_time.tm_year-1970,cha_time.tm_mon-1,cha_time.tm_mday-1,cha_time.tm_hour-0,cha_time.tm_min-1,cha_time.tm_sec-0))
 
时间日期格式化符合

 %y:两位数的年份

 %Y:四位数的年份

 %m:月份

 %d:天

 %H:24进制的小时

 %I:12进制的小时

 %M:分钟

 %S:秒

 %a:本地简化星期名称

 %A:本地完整星期名称

 %b:本地简化的月份名称

 %B:本地完整的月份名称

 %c:本地相应的日期和时间的表示

 %j:年内的一天

 %p:本地AM或者PM的等价符

 %U:一年中的星期数,星期天为星期的开始

 %w:星期(0-6),星期天为开始

 %W:一年中的星期数,星期一为开始

 %x:本地相应的时间表示

 %X:当前时期的名称

 %%:%本身

三 random模块:随机模块

 random:0到1之间的小数

print(random.random())

 uniform:自定义小数范围

print(random.uniform(1,4))

 randint:自定义随机整数的范围(取头取尾)

print(random.randint(1,10))

 randrange:自定义随机整数的范围(取头不取尾)还可以定义步长取

print(random.randrange(1,20,2))

 choice:随机返回一个值

print(random.choice([1,2,3,44,(2,4,6)]))

 sample:随机返回多个值,自定义返回值的个数

print(random.sample([1,2,3,44,(2,4,6)],3))

 shuffle:打乱顺序

l=[1,2,3,4,5,6,7,8,9]
random.shuffle(l)
print(l)

随机验证码

# import random
# def yan(n):
#     ll=‘‘
#     for num in range(n):
#         i=random.randint(0,9)
#         j=chr(random.randint(65,90))
#         z=chr(random.randint(97,122))
#         l=random.choice([str(i),j,z])
#         ll+=l
#     print(ll)
# yan(6)

四 os模块

  os.getcwd:获取当前的工作目录

 os.chdir:改变当前脚本的工作目录

 os.curdir:返回当前目录

 os.pardir:获取当前目录的父目录字符串名

 os.makedirs:可生成多层递归目录

 os.removedirs:递归删除上一级的空目录

 os.mkdir:生成单层目录

 os.rmdir:删除单级空的目录

 os.listdir:列出指定目录下的所有的文件和子目录

 os.remove:删除一个文件

 os.rename:修改文件名/目录名

 os.stat:获取文件/目录信息

 os.sep:输出操作系统特定的路劲分割符

 os.linesep:输出当前平台的行终止符

 os.pathsep:输出用于分割文件路径的字符串

 os.name:输出字符串指示的当前平台

 os.system:运行shell命令直接显示

 os.popen:运行shell命令,获取执行结果

 os.environ:获取系统的环境变量

 os.path.abspath:返回path规范化的绝对路径

 os.path.exists:如果path存在,返回True;相反返回False

 os.path.isabs:如果path是绝对路径返回True

 os.path.isfile:如果是是一个存在的文件返回True

 os.path.isdir:如果是一个存在的目录返回True

 os.path.join:路径拼接

 os.path.getatime:返回所指向文件或者目录最后的访问时间

 os.path.getmtime:返回所指文件或者目录的最后修改时间

 os.path.getsize:返回文件或者目录的大

 五 sys模块

 sys.argv:命令行参数list,第一个元素是程序的路径本身

 sys.exit:退出程序

 sys.version:获取python解释器的版本信息

 sys.path:返回模块的 搜索路径

 sys.platform:返回操作系统平台名称

六 序列化模块

 什么叫做序列化:将原本的数据类型转换成字符串的过程就叫做序列化;相反将字符串转为非字符串的数据类型就叫做反序列化

 序列化的好处:1以某种存储形式使自定义对象持久化;2 将对象从一个地方传送到另一个地方;3 使程序更具有维护性

 序列化的几个模块:json模块:用于各种开发语言之间的,只能在基本的数据类型上使用

          pickle模块:只能用于python开发中,不过可以对特殊的数据类型进行操作

          shelve模块:只有open一个方法,直接就可以对文件句柄操作。读取的内容是以存入的类型读取的。

json和pickle的四种功能:dump和dumps:序列化,转成字符串,dump用于文件操作;dumps用于网络传输。

            load和loads:反序列化,转换成非字符串(内容中假如要用引号,必须用双引号)。load用于文件操作,loads用于网络传输。

json:

import json
# a={‘fan‘:123,‘jie‘:321}
# with open(‘a‘,‘w‘,encoding=‘utf-8‘)as f:
#     json.dump(a,f)  #序列化写入文件
#
# with open(‘a‘)as f:
#     print(json.load(f))  #反序列化读取


# print(type(json.dumps({‘fan‘:123,‘jie‘:321})))  #序列化
# print(type(json.loads(‘{"fan":123,"jie":321}‘)))   #反序列化

 pickle:

# import pickle
# a={‘fan‘:123,‘jie‘:321}
# with open(‘a1‘,‘wb‘)as f:
#     pickle.dump(a,f)  #序列化写入文件
# 
# with open(‘a1‘,‘rb‘)as f:
#     print(pickle.load(f))  #反序列化读取
# 
# 
# print(type(pickle.dumps({‘fan‘:123,‘jie‘:321})))  #序列化
# print(type(pickle.loads(pickle.dumps(‘{"fan":123,"jie":321}‘))))   #反序列化

 shelve:

# import shelve
# with shelve.open(‘a2‘)as f:
#     f[‘k1‘]={"fan":123,"jie":321}            直接对文件句柄操作,就可以存入数据
#     f[‘k2‘] = {"fang": 1234, "jie": 3210}          直接对文件句柄操作,就可以存入数据
#     f1=f[‘k2‘]              #取出数据的时候也只需要直接用key获取即可,但是如果key不存在会报错
#     print(f1)
#     print(f[‘k1‘])        #取出数据的时候也只需要直接用key获取即可,但是如果key不存在会报错

 

重修课程day18(模块2)

标签:日期   nbsp   name   shell   target   运行   choice   val   type   

原文地址:http://www.cnblogs.com/fangjie0410/p/7513046.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!