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则为不存在
Day 20 Time 模块.的更多相关文章
- day 20 02 模块的导入
day 20 02 模块的导入 1.模块:就是一个文件:放置一些通用的有独立功能程序或者函数.比如建立一个py文件,文件名为:demo,文件里面的内容:demo模块: print('嗨大米')def ...
- day 20 collection模块 time 模块 os 模块
一.collection模块 1.namedtuple: 生成可以使用名字来访问元素内容的tuple 2.deque: 双端队列,可以快速的从另外一侧追加和推出对象 3.Counter: 计数器,主要 ...
- 20 常用模块 hashlib hmac:加密 xml xlrd xlwt:excel读|写 configparser subprocess
hashlib模块:加密 加密: 1.有解密的加密方式 2.无解密的加密方式:碰撞检查 hashlib -- 1)不同数据加密后的结果一定不一致 -- 2)相同数据的加密结果一定是一致的 import ...
- Day 20 常用模块(三)
一.加密模块 1.加密方式: 1.有解密的加密方式 2.无解密的加密方式,碰撞检查 1.不同数据加密后的结果一定不一致 2.相同数据的加密结果一定是一致 2.hashlib模块 1.基本使用 ciph ...
- python标准库介绍——20 cStringIO 模块详解
==cStringIO 模块== ``cStringIO`` 是一个可选的模块, 是 ``StringIO`` 的更快速实现. 它的工作方式和 ``StringIO`` 基本相同, 但是它不可以被继承 ...
- python入门20 导入模块(引包)
1 引包: import module 或 import module.module1 或 from module import module1,module2...等 2 import xx ...
- Day 20 re模块(正则表达式)
re模块 作用:取文本或者字符串内找你所需要的东西 import re re.findall(参数一,参数二,参数三) #暂时用到前两个,第一个为正则表达式,第二个为字符串,也就是被搜索的文本 ^元字 ...
- 20.logging模块
# __________________________________________________ # 创建一个logger logger = logging.getLogger() logge ...
- 第20章 DLL高级技术(3)
20.4 函数转发器 (1)函数转发器原理(下图是利用Dependency Walker打开Kernel32.dll得到) ①图中CloseThreadpool*等4个函数转发到NTDLL中相应的函数 ...
随机推荐
- iframe父窗口和子窗口之间的调用
1>父窗口获取子窗口 js方法 document.getElementById('if1').contentWindow.document: window.frames["if1&qu ...
- 【转】从源码浅析MVC的MvcRouteHandler、MvcHandler和MvcHttpHandler
原文:http://www.cnblogs.com/jeffwongishandsome/archive/2012/01/08/2316521.html 熟悉WebForm开发的朋友一定都知道,Pag ...
- WARNING [main] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [] milliseconds.
编译安装tomcat-native和tomcat-deamon以后,发现toomcat启动很慢,好久才有响应.以下日志供参考: 11-Sep-2017 12:19:28.102 INFO [main] ...
- 删除SVN版本控制目录
@echo On @Rem 删除SVN版本控制目录 @PROMPT [Com] @for /r . %%a in (.) do @if exist "%%a\.svn" rd /s ...
- oracle使用 merge 更新或插入数据
OracleCC++C# 总结下.使用merge比传统的先判断再选择插入或更新快很多. 1)主要功能 提供有条件地更新和插入数据到数据库表中 如果该行存在,执行一个UPDATE操作,如果是一个新行, ...
- Restful API设计要点
1 Restful API时面向资源,不能面向动作: 2 充分利用http协议的GET, HEAD, OPTION, PUT, POST, DELETE几种方法: 3 GET方法用于获取资源,是幂等和 ...
- Nginx详解(正向代理、反向代理、负载均衡原理)
Nginx配置详解 nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行 ...
- 这样的UI UX设计师描述你满意吗?
UI/UX 设计师是我们耳熟能详的名称,但是这些红遍大江南北的设计师到底是什么鬼? 今天小编跟大家好好分享一些关于UI UX 设计师的描述,让大家搞清楚两者的含义和职责.全文主要分成UI设计师描述和U ...
- 向文件写入一个数据块---write
函数原型:ssize_t write(int fd,const void *buf,size_t count); 参数说明:fd:文件描述符,buf:写入数据的缓冲区,count:写入数据的最大长度. ...
- part1:10-TFTP与NFS服务器配置
1.交叉开发 嵌入式系统开发多采用交叉开发模式,所谓嵌入式交叉开发就是指在宿主机上进行程序的编写,然后通过交叉编译生成目标机平台可以运行的二进制代码,最后再下载到目标平台上的特定位置运行.产生嵌入式软 ...