zoukankan      html  css  js  c++  java
  • python3.6入门到高阶(全栈) day021 基本模块1

    一. 今日主要内容
    1. 关于模块(引入模块)
    import
    from xxx import xxx
    2. Collections
    1. Counter 计数器
    例 s = "you like pig"
    print(Counter(s))
    2. 栈: 先进后出.
    队列:先进先出
    例 # import queue
    # #
    # q = queue.Queue() # 创建队列
    # q.put("李嘉诚")
    # q.put("陈冠希")
    # q.put("周润发")
    # q.put("吴彦祖")
    #
    # print(q.get())
    # print(q.get())
    # print(q.get())
    # print(q.get())
    # # print(q.get()) # 队列中如果没有元素了. 继续获取的话. 会阻塞
    # print("拿完了")
    deque:双向队列
    例 # from collections import deque
    #
    # q = deque() # 创建一个双向队列
    # q.append("高圆圆")
    # q.append("江疏影")
    # q.appendleft("赵又廷")
    # q.appendleft("刘大哥")
    # # 刘大哥 赵又廷 高圆圆 江疏影
    # print(q.pop()) # 从右边获取数据
    # print(q.pop())
    # print(q.popleft()) # 从左边获取数据
    # print(q.popleft())
    # print(q.pop())

    3. defaultdict 默认值字典
    例 from collections import defaultdict
    lst= [11,22,33,44,55,66,77,88,99]
    # d = defaultdict(list)
    # for el in lst:
    # if el < 66:
    # d["key1"].append(el) # key1默认是不存在的. 但是可以拿key1. 一个空列表.
    # else:
    # d["key2"].append(el)
    # print(d)

    4. namedtuple 命名元祖. struct_time 结构化时间就是命名元祖


    5. OrederedDict 有序字典。 按照我们存储的顺序保存. 和3.6以后的字典一样的
    3. time 时间模块
    1. 获取系统时间 time.time() 时间戳
    2. 格式化时间 strftime() 时间格式: %Y-%m-%d %H:%M:%S %Y-%m-%d
    例 s = time.strftime("%Y-%m-%d %H:%M:%S") # 必须记住
    print(s)

    3. 结构化时间 time.gmtime() time.localtime()
    例 t =time.gmtime(1888888888)
    str_time =time.strftime('%Y-%m-%d %H:%M:%S',t)
    print(str_time)
    strptime() 把格式化时间转化成结构化时间
    例 s = "2020-10-01 12:18:12"
    t = time.strptime(s, "%Y-%m-%d %H:%M:%S") # 转化成结构时间
    print(t)

    mktime() 把结构化时间转化成时间戳
    例 s = "2020-10-01 12:18:12"
    t = time.strptime(s, "%Y-%m-%d %H:%M:%S") # 转化成结构时间
    print(time.mktime(t))


    拓展例子 while 1:
    s =time.strftime('%Y-%m-%d %H:%M:%S')
    print(s)
    time.sleep(1)

    时间差的计算

    # # 中文
    # import locale
    # locale.setlocale(locale.LC_CTYPE, "chinese")


    # 时间差 1小时30分
    # begin = "2018-11-14 16:30:00"
    # end = "2018-11-14 18:00:00"
    # # 用时间戳计算出时间差(秒)
    # begin_struct_time = time.strptime(begin, "%Y-%m-%d %H:%M:%S")
    # end_stract_time = time.strptime(end, "%Y-%m-%d %H:%M:%S")
    #
    # begin_second = time.mktime(begin_struct_time)
    # end_second = time.mktime(end_stract_time)
    #
    # # 秒级的时间差 180000
    # diff_time_sec = abs(begin_second - end_second)
    #
    # # 转换成分钟
    # diff_min = int(diff_time_sec//60)
    # print(diff_min)
    #
    # diff_hour = diff_min//60 # 1
    # diff_min_1 = diff_min % 60 # 30
    #
    # print("时间差是 %s小时%s分钟" % (diff_hour, diff_min_1))

    # begin = "2019-11-14 16:30:00"
    # end = "2018-11-14 18:00:00"
    # # 用时间戳计算出时间差(秒)
    # begin_struct_time = time.strptime(begin, "%Y-%m-%d %H:%M:%S")
    # end_stract_time = time.strptime(end, "%Y-%m-%d %H:%M:%S")
    #
    # begin_second = time.mktime(begin_struct_time)
    # end_second = time.mktime(end_stract_time)
    #
    # # 秒级的时间差 180000
    # diff_time_sec = abs(begin_second - end_second)
    #
    # # 转化成结构化时间
    # t = time.gmtime(diff_time_sec) # 最好用格林尼治时间。 否则有时差
    # print(t)
    #
    # print("时间差是%s年%s月 %s天 %s小时%s分钟" % (t.tm_year-1970, t.tm_mon-1, t.tm_mday-1,t.tm_hour, t.tm_min ))



    4. os和sys
    os.sep 文件路径分隔符
    所有和操作系统相关的内容都在os模块
    os.makedirs('dirname1/dirname2') 可⽣成多层递归⽬录
    os.removedirs('dirname1') 若⽬录为空,则删除,并递归到上⼀级⽬录,如若也为空,则删
    除,依此类推
    os.mkdir('dirname') ⽣成单级⽬录;相当于shell中mkdir dirname
    os.rmdir('dirname') 删除单级空⽬录,若⽬录不为空则⽆法删除,报错;相当于shell中
    rmdir dirname
    os.listdir('dirname') 列出指定⽬录下的所有⽂件和⼦⽬录,包括隐藏⽂件,并以列表⽅式
    打印
    os.remove() 删除⼀个⽂件
    os.rename("oldname","newname") 重命名⽂件/⽬录
    os.stat('path/filename') 获取⽂件/⽬录信息
    os.system("bash command") 运⾏shell命令,直接显示
    os.popen("bash command).read() 运⾏shell命令,获取执⾏结果
    os.getcwd() 获取当前⼯作⽬录,即当前python脚本⼯作的⽬录路径
    os.chdir("dirname") 改变当前脚本⼯作⽬录;相当于shell下cd
    # os.path
    os.path.abspath(path) 返回path规范化的绝对路径
    os.path.split(path) 将path分割成⽬录和⽂件名⼆元组返回
    os.path.dirname(path) 返回path的⽬录。其实就是os.path.split(path)的第⼀个元素
    os.path.basename(path) 返回path最后的⽂件名。如何path以/或结尾,那么就会返回空值。
    即os.path.split(path)的第⼆个元素
    os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
    os.path.isabs(path) 如果path是绝对路径,返回True
    os.path.isfile(path) 如果path是⼀个存在的⽂件,返回True。否则返回False
    os.path.isdir(path) 如果path是⼀个存在的⽬录,则返回True。否则返回False
    os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第⼀个绝对路径之前的参数
    将被忽略
    os.path.getatime(path) 返回path所指向的⽂件或者⽬录的最后访问时间
    os.path.getmtime(path) 返回path所指向的⽂件或者⽬录的最后修改时间
    os.path.getsize(path) 返回path的⼤⼩
    # 特殊属性:
    os.sep 输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
    os.linesep 输出当前平台使⽤的⾏终⽌符,win下为" ",Linux下为" "
    os.pathsep 输出⽤于分割⽂件路径的字符串 win下为;,Linux下为:
    os.name 输出字符串指示当前使⽤平台。win->'nt'; Linux->'posix'

    os.stat() 属性解读:
    stat 结构:
    st_mode: inode 保护模式
    st_ino: inode 节点号。
    st_dev: inode 驻留的设备。
    st_nlink: inode 的链接数。
    st_uid: 所有者的⽤户ID。
    st_gid: 所有者的组ID。
    st_size: 普通⽂件以字节为单位的⼤⼩;包含等待某些特殊⽂件的数据。
    st_atime: 上次访问的时间。
    st_mtime: 最后⼀次修改的时间。
    st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在
    其它系统上(如Windows)是创建时间(详细信息参⻅平台的⽂档)。

    sys.path python查找模块的路径
    所有和python解释器相关的都在sys模块.
    sys.argv 命令⾏参数List,第⼀个元素是程序本身路径
    sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1)
    sys.version 获取Python解释程序的版本信息
    sys.path 返回模块的搜索路径,初始化时使⽤PYTHONPATH环境变量的值
    sys.platform 返回操作系统平台名称
  • 相关阅读:
    hdu 5115 Dire Wolf 区间DP
    泛型兼容的注意事项
    maven web项目不能创建src/main/java等文件夹的问题
    error the @annotation pointcut expression is only supported at Java 5
    HashSet重复元素判断
    oracle 分库分表(sharding)
    关系型数据库分库分表解决方案
    JDK7中匿名内部类中使用局部变量要加final,JDK8中不需要,但jdk会默认加上final
    eclipse中更改配置使得switch语句不出错
    java io流中怎么在一个文本中追加字符串
  • 原文地址:https://www.cnblogs.com/wanxiangai/p/9960106.html
Copyright © 2011-2022 走看看