• python全栈开发 * 27知识点汇总 * 180710


    27   time  os  sys  模块

    time 模块

    一.表示时间的三种方式 时间戳(timestamp), 元组(struct_time),格式化时间字符串(Format string)
    小结:时间戳是计算机能够识别的时间;
    时间字符串是人能够看懂的时间;
    元组则是用来操作时间的
    (一).时间戳(timestamp): 时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。 运行“type(time.time())”,返回的是float类型。
    (二).元组(struct_time): struct_time元组共有9个元素
    索引(Index)属性(Attribute)值(Values)
    0 tm_year(年) 比如2011
    1 tm_mon(月) 1 - 12
    2 tm_mday(日) 1 - 31
    3 tm_hour(时) 0 - 23
    4 tm_min(分) 0 - 59
    5 tm_sec(秒) 0 - 60
    6 tm_wday(weekday) 0 - 6(0表示周一)
    7 tm_yday(一年中的第几天) 1 - 366
    8 tm_isdst(是否是夏令时) 默认为0
    (三).格式化时间字符串(Format string) "1999-12-06"
    print(time.strftime("%Y-%m-%d %H:%M:%S")) # 2018-07-10 21:04:30
    print(time.strftime("%x %X")) # 07/10/18 21:09:39
    print(time.strftime("%Y-%m-%d %X")) # 2018-07-10 21:03:18
    1.python中时间日期格式化符号:
    %y 两位数的年份表示(00-99)
    %Y 四位数的年份表示(000-9999)
    %m 月份(01-12)
    %d 月内中的一天(0-31)
    %H 24小时制小时数(0-23)
    %I 12小时制小时数(01-12)
    %M 分钟数(00=59)
    %S 秒(00-59)
    %a 本地简化星期名称
    %A 本地完整星期名称
    %b 本地简化的月份名称
    %B 本地完整的月份名称
    %c 本地相应的日期表示和时间表示
    %j 年内的一天(001-366)
    %p 本地A.M.或P.M.的等价符
    %U 一年中的星期数(00-53)星期天为星期的开始
    %w 星期(0-6),星期天为星期的开始
    %W 一年中的星期数(00-53)星期一为星期的开始
    %x 本地相应的日期表示
    %X 本地相应的时间表示
    %Z 当前时区的名称
    %% %号本身

    二.三种格式之前的转化
    1.格式化转结构化 # time.strptime(时间字符串,字符串对应格式)
    import time
    ft=time.strftime("%Y-%m-%d %H:%M:%S")
    struct_time=time.strptime(ft,"%Y-%m-%d %H:%M:%S")
    print(struct_time)
    2.结构化时间转时间戳 # time.mktime(结构化时间)
    import time
    ft=time.strftime("%Y-%m-%d %H:%M:%S")
    struct_time=time.strptime(ft,"%Y-%m-%d %H:%M:%S")
    print(struct_time)
    time_stamp=time.mktime(struct_time)
    print(time_stamp)
    3.时间戳转结构化 # time.localtime(时间戳)
    import time
    time_stamp=time.time()
    struct_time=time.localtime(time_stamp)
    print(struct_time)
    4.结构化转格式化 # time.strftime( 格式定义,结构化时间)
    import time
    time_stamp=time.time()
    struct_time=time.localtime(time_stamp)
    print(struct_time)
    ft=time.strftime("%Y-%m-%d %H:%M:%S",struct_time)
    print(ft)
    练习
    申请 博客园的时间 2017年6月7日 18:50:50
    利用time模块,距现在 过了多少年,多个月,多少日,多少小时,多少分多少秒.
    import time
    time_old=time.mktime(time.strptime("2017-03-16 18:06:07","%Y-%m-%d %H:%M:%S"))
    # print(time.strptime("2017-03-16 18:06:07","%Y-%m-%d %H:%M:%S"))
    time_now=time.mktime(time.strptime("2018-07-10 18:06:07","%Y-%m-%d %H:%M:%S"))
    d_time=time_now-time_old
    struct_time=time.localtime(d_time)
    print(struct_time)
    print("过去了%d年%d月%d天%d小时%d分钟%d秒" %(struct_time.tm_year-1970,struct_time.tm_mon-1,struct_time.tm_mday-1,
    struct_time.tm_hour, struct_time.tm_min, struct_time.tm_sec))
    三.特殊转化
    1.时间戳转格式化时间字符串
    ft=time.ctime(时间戳) 如果不传参数,直接返回当前时间的格式化串 结果 星期 月份 日 时 分 秒 年
    2.结构化时间转特殊格式化时间
    ft=time.asctime(结构化时间) 如果不传参数,直接返回当前时间的格式化串 结果 星期 月份 日 时 分 秒 年


    OS模块 与操作系统交互的一个接口
    一.相关定义
    1,路径:
    (1)相对路径 : 相对于当前文件所在的位置 (
    从当前文件夹找到另一个文件夹中的内容 往外走 ../ ;eg: ..(08)/..(a)/b
    从当前往内走 : 直接加文件夹名字 f/文件夹名
    同级 : f/文件名/文件名
    (2)绝对路径 : 从磁盘根目录寻找文件 ( C:/// 或 http:/// )
    2.文件名 名称+ " .py "
    3.工作目录 ,父级目录(当前目录): 本文件所在的文件夹的绝对路径
    二.执行当前这个py文件的工作目录相关的工作路径
    *print(os.getcwd()) # C:课后作业27 获取当前文件的工作目录
    print(os.chdir()) # 改变当前脚本工作目录
    print(os.curdir) # . 返回当前目录
    print(os.pardir) # .. 返回上上级目录
    三.和文件夹相关
    import os
    # os.mkdir("文件夹1") # 生成单级目录
    # os.mkdir("文件夹1文件2") # 文件已存在可以创建子目录
    # os.makedirs("dirname1\dirname2/dirname3\dirname4") #可生成多层递归目录
    # os.rmdir("文件夹1/文件夹2") # 删除文件夹2 删除单级空目录,若目录不为空则无法删除, ( 只能是文件夹,不能是文件) 删除文件夹2
    # os.removedirs("dirname1\dirname2/dirname3\dirname4") # 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
    print(os.listdir("C:课后作业\27")) #['27练习.py', 'dirname.py', 'dirname1', '文件夹1'] (仅限第一级)
    print(os.listdir("C:课后作业\27\dirname1")) # ['dirname2']
    四.和文件相关
    import os
    # os.remove("文件夹1文件一.py") # 删除文件夹1下的文件一,py 只能删除文件,不能删除文件夹
    # os.remove("文件夹2") # 拒绝访文件夹2
    # os.rename('文件夹2文件6.py',"文件夹2文件8.py") #重命名可以作用于文件夹和文件
    os.rename("文件夹2",'文件夹6') # 更换成文件夹6
    五.和操作系统差异相关
    如果项目凌驾于不同的操作系统,可能需要 转化
    # win: E:sylarpython_workspaceday27
    # linux: E:/sylar/python_workspace/day27
    import os
    1.print(os.sep) # win : Linux下为"/"
    2. print(os.linesep) # win : Linux下为" "
    3. print(os.pathsep) # win : ; Linux下为:
    4.print(os.name) # win : nt Linux->'posix'
    六.执行系统命令相关 .如果项目凌驾于不同的操作系统,可能需要
    import os
    1.os.system('dir') # (exec) 没有返回值
    2.ret=os.popen("dir").read() # (eval ) 有返回值
    print(ret)
    3.print(os.environ) #获取系统环境变量
    七.path系列 与路径相关
    import os
    print(os.path.abspath("dirname1")) # C:课后作业27dirname1 通过文件名获取文件的绝对路径.
    print(os.path.split("C:课后作业\27dirname1" )) #('C:\课后作业\27', 'dirname1') 得到 元组(当前目录,文件名)
    print(os.path.dirname('C:课后作业\27dirname1')) # C:课后作业27 通过绝对路径获取工作目录
    print(os.path.basename("C:课后作业\27dirname1")) #dirname1 通过绝对路径返回文件名 返回path最后的文件名。
    # 如果path以/或结尾,那么就会返回空值,即
    print(os.path.exists("C:课后作业\27dirname1")) #True 如果path存在,返回True;如果path不存在,返回False
    print(os.path.isabs("C:课后作业\27dirname1")) #True
    print(os.path.isfile("C:课后作业\27dirname1")) # False 如果path是一个存在的文件,返回True。否则返回False
    print(os.path.isdir("C:课后作业\27dirname1")) # True 如果path是一个存在的目录,则返回True。否则返回False
    print(os.path.join("C:课后作业\27\dirname1","27练习.py","文件夹6")) #C:课后作业27dirname127练习.py文件夹6
    print(os.path.getatime("C:课后作业\27dirname1")) #1531271740.862077 返回path所指向的文件或者目录的最后访问时间
    print(os.path.getmtime("C:课后作业\27dirname1")) #1531271740.862077 返回path所指向的文件或者目录的最后修改时间
    print(os.path.getsize("C:课后作业\27\27练习.py")) # 8731 字节
    os.stat('path/filename') 获取文件/目录信息 的结构说明
    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 模块
    import sys
    1.print(sys.platform) #win32 操作系统的名字
    2.print(sys.version) #3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] Py解释器的版本.
    3.print(sys.path) #模块查询的顺序
    4.print(sys.exit()) #结束python解释器 退出程序,正常退出时exit(0),错误退出sys.exit(1)
    5.print(sys.argv) # ['C:/课后作业/27/27练习.py'] 列表里面是路径 第一个元素是程序本身路径
    sys.argv=['C:/课后作业/27/27练习.py',"alex","alex3714"]
    if sys.argv[1] == 'alex' and sys.argv[2] =='alex3714':
    print('启动mysql')
  • 相关阅读:
    【自动化测试】rf+selenium中解决for计数嵌套循环问题
    【自动化测试】RF链接数据库12c遇到的问题总结
    【自动化测试】关于如何管理规范整个团队的想法(1)
    python爬虫--基本流程
    python爬虫--理论
    [工具箱]一键优化Windows
    [工具箱]禁用Windows系统更新做了哪些操作?
    有人说要节能,有人说要耗能
    让攻击挖矿耗能的攻击者闭嘴的方法是?
    POC挖矿没有前途
  • 原文地址:https://www.cnblogs.com/J-7-H-2-F-7/p/9294282.html
Copyright © 2020-2023  润新知