Day 20 Time 模块.
from collections import namedtuple
Point =namedtuple("Point",["x","y"])
# 1. namedtuple :生成可以使用名字来访问元素内容的tuple
# 2. deque 双端队列, 可以快速的从另一侧追加和推出对象
# 3.Counter:计数器 主要用来计数
# 4. OrderedDict 有序字典
# 5. defaultdict :(带有默认值的字典
deque
from collections import deque
q =deque(['a','b','c'])
q.append('x')
print(q)
# 输出结果为:deque(['a', 'b', 'c', 'x'])
#deque除了实现list的 append()和pop()外,还支持appendleft()和 popleft(),这样就可以非常高效的往头部添加或者删除元素.
# OrderedDict
# 使用dict时,key是无序的,在对dict做迭代时,我们无法确定key的顺序。
# 如果要保持key的顺序,可以用ordereddict
from collections import OrderedDict
# d =dict([('a',1),('b',2),("c",3)])#无序字典
# print(d)
# # 答案:{'a': 1, 'b': 2, 'c': 3}
# od =OrderedDict([('a',1),('b',2),("c",3)])
# print(od)
# 打印结果:OrderedDict([('a', 1), ('b', 2), ('c', 3)])
od = OrderedDict()
od['z'] = 1
od['y']=2
od['x']=3
# od.keys()
print(od)
# 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
from collections import defaultdict
values = [11, 22, 33,44,55,66,77,88,99,90]
my_dict = defaultdict(list)
for value in values:
if value>66:
my_dict['k1'].append(value)
else:
my_dict['k2'].append(value)
print(my_dict)
import time time.time() print(time.time()) #打印出来的为时间戳时间. # 打印结果为 1521114319.95188 print(time.strftime('%Y,%m,%d,%H %M %S')) #格式化输出时间. time_tuple=time.localtime(15000) print(time_tuple) #时间戳时间转换成结构化时间. # 输出结果 # time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=12, tm_min=10, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0) timestmp = time.mktime(time_tuple) print(timestmp) # 结构化时间转换成时间戳时间 # 输出结果15000.0 fmtime =time.strftime('%Y %m %d %H %M %S') print(fmtime) # 格式化时间 #输出结果 2018,03,15,19 54 53 sttime = time.strptime('2065-01-24 13:20:00','%Y-%m-%d %H:%M:%S') print(sttime) #格式化转换成结构化时间 #time.struct_time(tm_year=2065, tm_mon=1, tm_mday=24, tm_hour=13, tm_min=20, tm_sec=0, tm_wday=5, tm_yday=24, tm_isdst=-1)
时间的表示方式.
1. 时间戳(timestamp):计算机的表示
2.格式化时间(字符串):方便用户查看.
3.结构化时间(元组):提供了更丰富的时间表示方式.方便计算.
# import time
# time_tuple = time.localtime(1500000000)#结构化时间
# print(time.mktime(time_tuple))
import time
print(time.time())
# 打印结果:1519909456.8607504 时间戳时间.
print(time.strftime('%Y')) #显示年份. 2018
print(time.strftime('%Y/%m/%d'))#显示结果:2018/03/01
print(time.strftime('%Y/%m/%d %H:%M:%S'))# 显示结果 :2018/03/01 21:09:34
print(time.strftime('%x %X'))# 打印结果:03/01/18 21:10:15 ,
s_time =time.localtime()
print(s_time.tm_hour)#当前时间 小时. 21
print(s_time.tm_mday)#当前时间 日期 1
以什么形式记录时间?
记录时间戳 .
时间戳到结构化时间
#localtime
#gmtime
时间戳(timestamp):通常来说,时间戳表示从1970年1月1日0时0分0秒开始时间的偏移量,单位为秒。
import time
print(time.time()) #结果 1519910208.9107652 时间戳时间.
-----
stime =time.localtime(30000000) # 将时间戳转换成结构化时间. 北京时间
print(stime) #结果 time.struct_time(tm_year=1970, tm_mon=12, tm_mday=14, tm_hour=13, tm_min=20, tm_sec=0, tm_wday=0, tm_yday=348, tm_isdst=0)
----
qtime =time.gmtime(300000000)#将时间戳转换成结构化时间. London时间
print(qtime)#结果:time.struct_time(tm_year=1979, tm_mon=7, tm_mday=5, tm_hour=5, tm_min=20, tm_sec=0, tm_wday=3, tm_yday=186, tm_isdst=0)
---
print(time.mktime(stime)) #结果:30000000.0 #将结构化时间转换成时间戳时间
结构化时间转换成-->格式化时间.
import time
stime = time.gmtime(30000) #将时间戳时间转换成结构化时间.
ftime =time.strftime('%Y - %m -%d %H:%M:%S',stime)# 将结构化时间转换成格式化时间
print(ftime)
结果:1970 - 01 -01 08:20:00
格式化时间转换成结构化时间
s_time =time.strptime('2065-01-24 13:20:00','%Y-%m-%d %H:%M:%S')
print(s_time)
结果为:time.struct_time(tm_year=2065, tm_mon=1, tm_mday=24, tm_hour=13, tm_min=20, tm_sec=0, tm_wday=5, tm_yday=24, tm_isdst=-1)
# print(time.asctime(time.localtime(3000000000)))
# print(time.ctime(3000000000))
import os
print(os.getcwd())
输出结果为当前的目录下
D:\parcharm
print(os.listdir('d:\parcharm'))
结果 :
['.idea', '1.py', '12', '17.py', '4.py', '5.py', 'dir', 'log', 'log1', 'my_module.py', 'new.txt', 'register', '__pycache__']
print (os.path.isdir('d:\parcharm'))
结果:
True
print (os.getcwd)
结果 :
D:\parcharm
os.makedirs('dirname1/dirname2')
结果 :
os.makedirs('dirname1/dirname2')
# os.removedirs('dirname1/dirname2')#递归删除 ,删除后返回上一级目录,若也为空,则删除
print(os.listdir('dirname1'))
结果:['1212.txt', 'New Microsoft Visio 绘图.vsdx']
print(os.stat(r'D:\PycharmProjects\test\venv\Scripts\python.exe'))
结果 :os.stat_result(st_mode=33279, st_ino=562949953433880, st_dev=2104301406, st_nlink=1, st_uid=0, st_gid=0, st_size=97944, st_atime=1516238739, st_mtime=1516238739, st_ctime=1516238739)
print(os.sep) windows 下路径的分隔符为 \ (Linux的路径下为/)
结果为:\
print("a%sb" %os.sep)
输出结果为:a\b
os.system("dir") #exec 无返回值. 使用python去执行操作系统的命令.
ret=os.popen("dir").read()
print(ret)
print(exec("1+2+3"))
print(eval("1+2+3")) #算了 返回结果
print(os.path.abspath(r'D:/parcharm/17.py'))
print(os.path.abspath('D:/parcharm/17.py'))#查看文件的路径
print(os.path.dirname('D:/parcharm/17.py'))#文件所在的目录
print(os.path.exists('D:/parcharm/137.py')) #结果为False则为不存在