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 模块.的更多相关文章

  1. day 20 02 模块的导入

    day 20 02  模块的导入 1.模块:就是一个文件:放置一些通用的有独立功能程序或者函数.比如建立一个py文件,文件名为:demo,文件里面的内容:demo模块: print('嗨大米')def ...

  2. day 20 collection模块 time 模块 os 模块

    一.collection模块 1.namedtuple: 生成可以使用名字来访问元素内容的tuple 2.deque: 双端队列,可以快速的从另外一侧追加和推出对象 3.Counter: 计数器,主要 ...

  3. 20 常用模块 hashlib hmac:加密 xml xlrd xlwt:excel读|写 configparser subprocess

    hashlib模块:加密 加密: 1.有解密的加密方式 2.无解密的加密方式:碰撞检查 hashlib -- 1)不同数据加密后的结果一定不一致 -- 2)相同数据的加密结果一定是一致的 import ...

  4. Day 20 常用模块(三)

    一.加密模块 1.加密方式: 1.有解密的加密方式 2.无解密的加密方式,碰撞检查 1.不同数据加密后的结果一定不一致 2.相同数据的加密结果一定是一致 2.hashlib模块 1.基本使用 ciph ...

  5. python标准库介绍——20 cStringIO 模块详解

    ==cStringIO 模块== ``cStringIO`` 是一个可选的模块, 是 ``StringIO`` 的更快速实现. 它的工作方式和 ``StringIO`` 基本相同, 但是它不可以被继承 ...

  6. python入门20 导入模块(引包)

    1 引包: import module  或  import module.module1  或 from module import module1,module2...等 2 import xx ...

  7. Day 20 re模块(正则表达式)

    re模块 作用:取文本或者字符串内找你所需要的东西 import re re.findall(参数一,参数二,参数三) #暂时用到前两个,第一个为正则表达式,第二个为字符串,也就是被搜索的文本 ^元字 ...

  8. 20.logging模块

    # __________________________________________________ # 创建一个logger logger = logging.getLogger() logge ...

  9. 第20章 DLL高级技术(3)

    20.4 函数转发器 (1)函数转发器原理(下图是利用Dependency Walker打开Kernel32.dll得到) ①图中CloseThreadpool*等4个函数转发到NTDLL中相应的函数 ...

随机推荐

  1. 通过dockerfile构建nginx

    上次 利用命令行的形式来构建nginx服务, http://www.cnblogs.com/loveyouyou616/p/6806788.html 这次利用dockerfile文件来构建nginx服 ...

  2. Oracle 进入数据库 新增用户 修改密码方法

    1.以管理员身份进入 SQL plus 2.输入:sys/manager as sysdba 3.新增用户: 创建新用户: create user 用户名 identified by 密码; 解锁用户 ...

  3. ldd "symbol lookup error"问题解决

    http://www.linuxquestions.org/questions/slackware-14/symbol-lookup-error-usr-lib-libgtk-x11-2-0-so-0 ...

  4. Confluence无法打开编辑器,一直在转圈

    在管理员界面中,将Collaborative editing 设置为Off 或者 Limited . 快速找到该界面的方式是,在搜索框里搜索 “Collaborative editing”. 折腾了几 ...

  5. java--多线程编程简介

    1.什么时候使用多线程编程 一个任务在正常情况下是按顺序执行的,但是如果当前任务里有多个相似进程块(例如for,while语句),我们就可以考虑把这些代码块抽出来并行运行,无需阻塞 2.实现多线程的几 ...

  6. 2018.10.12 NOIP模拟 棋盘问题(切比雪夫距离)

    传送门 貌似是防ak题? 考试的时候想到了做四次cdqcdqcdq于是给自己多套了一个lognlognlogn结果还MLEMLEMLE 0分.(记得最后5分钟调出来的时候是那么的欣喜 下来发现并不需要 ...

  7. 2018.08.28 洛谷P3345 [ZJOI2015]幻想乡战略游戏(点分树)

    传送门 题目就是要求维护带权重心. 因此破题的关键点自然就是带权重心的性质. 这时发现直接找带权重心是O(n)的,考虑优化方案. 发现点分树的树高是logn级别的,并且对于以u为根的树,带权重心要么就 ...

  8. 2018.07.06 POJ 1459 Power Network(多源多汇最大流)

    Power Network Time Limit: 2000MS Memory Limit: 32768K Description A power network consists of nodes ...

  9. Android draw Rect 坐标图示

    前两天在博客发了在例子 android Canvas类介绍 http://byandby.javaeye.com/blog/825330 建议大家 点进去 看一看 不然下边没办法 继续啊. 我还是把这 ...

  10. 红楼梦3d游戏

    1. 红楼梦大观园2d图 2. 红楼梦3d图 潇湘馆 注册机:根据电脑名和时间生成一个id,然后根据注册机生成注册码.