zoukankan      html  css  js  c++  java
  • python学习Day18 导包、时间模块【time、calendar datetime】、SYS、OS, OS.path模块、项目开放周期&规范

    导包

    1.不考虑包的情况下直接from...直接导入文件夹下的具体模块

    2. if  __name__ == '__ma__'    # 自执行

         if  __name__ == '模块名'    # 被导入执行

    3.包:一系列模块的集合体,通过包内的__init__文件来管理包中所有模块提供给外界的名字

              -- 存放所以模块的文件夹名就是包名

    4.导包的三件可:

        1)编译__init__文件的pyc
        2)执行__init__文件形成全局名称空间,作为包的全局名称空间,包能直接使用的名字全部是__init__文件中提供的
        3)在导包文件中形成一个名字指向包的名称空间

    5. 包的管理:通过__init__文件来管理,在包中使用相对导入from点语法

       . 代表当前文件所在目录
       .. 代表当前文件所在目录的上一级目录
       .开头的导包语法,from .开头 import 名字,只能存活在包内

    所有项目中的导文件夹操作都采用 from  文件夹...来操作,不用依赖环境变量,因为执行文件的根目录已经添加到环境变量中了,在根目录往下能看到所有的文件夹以及文件。

    import os
    import sys
    BASE_DIR = os.path.dirname(os.path.dirname(__file__))
    sys.path.append(BASE_DIR)

    今日内容  :时间模块   系统模块、项目开发规范

    一、时间模块:

          import time

            时间戳(timestamp):time.time()
            延迟线程的运行:time.sleep(secs)
            ( 指定时间戳下的)当前时区时间:time.localtime([secs])
            (指定时间戳下的)格林威治时间:time.gmtime([secs])
            (指定时间元组下的)格式化时间:time.strftime(fmt[,tupletime])

            

           %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 当前时区的名称
         %%  %号本身

    calendar:日历

        判断闰年:calendar.isleap(year)
        查看某年某月日历:calendar.month(year, mouth)
       查看某年某月起始星期与当月天数:calendar.monthrange(year, mouth)
       查看某年某月某日是星期几:calendar.weekday(year, month, day)

    datetime:可以运算时间

       当前时间:datetime.datetime.now()
       昨天:datetime.datetime.now() + datetime.timedelta(days=-1)
       修改时间:datatime_obj.replace([...])
       格式化时间戳:datetime.date.fromtimestamp(timestamp)

    二、系统模块:sys   os    os.path

        2.1 sys:系统

         命令行参数List,第一个元素是程序本身路径:sys.argv
         退出程序,正常退出时exit(0):sys.exit(n)
         获取Python解释程序的版本信息:sys.version
         最大int值:sys.maxsize | sys.maxint
         环境变量:sys.path
         操作系统平台名称:sys.platform

         2.2 os:操作系统

        生成单级目录:os.mkdir('dirname')
        生成多层目录:os.makedirs('dirname1/.../dirnamen2')
        重命名:os.rename("oldname","newname")
        工作目录:os.getcwd()
        删除单层空目录:os.rmdir('dirname')
        移除多层空目录:os.removedirs('dirname1/.../dirnamen')
        列举目录下所有资源:os.listdir('dirname')
        路径分隔符:os.sep
        行终止符:os.linesep
        文件分隔符:os.pathsep
        操作系统名:os.name
        操作系统环境变量:os.environ
        执行shell脚本:os.system()

       2.3 os.path:系统路径操作

       执行文件的当前路径:__file__
       返回path规范化的绝对路径:os.path.abspath(path)
       将path分割成目录和文件名二元组返回:os.path.split(path)
      上一级目录:os.path.dirname(path)
       最后一级名称:os.path.basename(path)
       指定路径是否存在:os.path.exists(path)
       是否是绝对路径:os.path.isabs(path)
       是否是文件:os.path.isfile(path)
       是否是路径:os.path.isdir(path)
        路径拼接:os.path.join(path1[, path2[, ...]])
        最后存取时间:os.path.getatime(path)
        最后修改时间:os.path.getmtime(path)
        目标大小:os.path.getsize(path)

      2.4 normcase函数
        在Linux和Mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为反斜杠。
         >>> os.path.normcase('c:/windows\system32\')
         ' c:\windows\system32\'
      2.5 normpath函数
         规范化路径,如..和/
         >>> os.path.normpath('c://windows\System32\../Temp/')
         'c:\windows\Temp'

         >>> a='/Users/jieli/test1/\a1/\\aa.py/../..'
         >>> print(os.path.normpath(a))
         /Users/jieli/test1

    项目开放周期

    1.调研
    2.需求分析
    3.架构师完成项目demo,完成项目架构
    4.分工
    5.写代码
    6.白盒黑盒测试
    7.项目审核发布 => 项目 -> 产品

    bin: 可执行文件,入口,入口也可以放在项目根目录下
    core: 核心代码
    db:数据库相关文件
    interface:接口
    lib:包、模块、第三方文件夹
    log:日志
    setting:配置
    static:静态文件

  • 相关阅读:
    【BZOJ 4581】【Usaco2016 Open】Field Reduction
    【BZOJ 4582】【Usaco2016 Open】Diamond Collector
    【BZOJ 4580】【Usaco2016 Open】248
    【BZOJ 3754】Tree之最小方差树
    【51Nod 1501】【算法马拉松 19D】石头剪刀布威力加强版
    【51Nod 1622】【算法马拉松 19C】集合对
    【51Nod 1616】【算法马拉松 19B】最小集合
    【51Nod 1674】【算法马拉松 19A】区间的价值 V2
    【BZOJ 2541】【Vijos 1366】【CTSC 2000】冰原探险
    【BZOJ 1065】【Vijos 1826】【NOI 2008】奥运物流
  • 原文地址:https://www.cnblogs.com/qingqinxu/p/10831619.html
Copyright © 2011-2022 走看看