zoukankan      html  css  js  c++  java
  • 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	estvenvScriptspython.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



    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则为不存在
  • 相关阅读:
    MySQL学习笔记
    为什么使用多态?实现多态的有哪些方式
    C++中派生类使用基类成员的问题
    实现Modbus ASCII多主站应用
    PHP第四天 函数引用传值
    Webpack 快速上手(下)
    Java---23种设计模式(九)------组合模式
    【笔记】Linux就该这么学-第六课第四章
    Node.js HTTPS
    Node.js Smalloc
  • 原文地址:https://www.cnblogs.com/mengbin0546/p/8490735.html
Copyright © 2011-2022 走看看