1

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则为不存在
posted @ 2018-03-01 21:54  萌哥-爱学习  阅读(255)  评论(0编辑  收藏  举报