zoukankan      html  css  js  c++  java
  • python初步学习-import和datetime模块

    模块

    一个完整大型的python程序是由模块和包的形式组织起来的,可见模块在python中的重要性。模块是一种组织型式,它许多有关联(关系)的代码组织放到单独的独立文件中。简单的说,可以把模块理解为一个包含了许多强大功能(方法)的包。在python标准库中就包含许多模块,有很多模块内的方法都会被经常使用到。

    python模块有什么用?

    • 模块内有许多函数方法,利用这些方法可以更简单的完成许多工作。
    • 模块可以在文件中永久保存代码。在python交互式解释器中操作输入的代码,在退出python时是不会被保存的,而模块文件中的代码是永久存在的。
    • 从实用性方面来说,模块可以跨系统平台使用,只需要Copy代码就可以。比如说,有一个全局对像,会被许多文件使用,这时为了方便把它写入一个模块中,再被调用是最好的方法。

    import 语句语法

    使用import语句导入模块,import语句语法如下:
    import module
    关键字 模块名

    例如:
    import sys #导入math模块
    sys.path #调用math模块中的path属性

    如果要同时导入多个模块,只需要在模块名之前用逗号进行分隔:

    import module1,module2,module3……

    import 语句导入模块顺序

    在编写代码过程中,我们可能需要多种多样的模块。需要注意的是最好把导入模块放在代码的开头。为什么呢
    解释器在执行语句是,遵循作用域原则。因为这个作用域有关系,如果在顶层导入模块,此时它的作用域是全局的;如果在函数内部导入了模块,那它的作用域只是局部的,不能被其他函数使用。如果其他函数也要用到这个模块,还需要再次导入比较麻烦。

    在用import语句导入模块时最好按照这样的顺序:

    • python标准库模块
    • python第三方模块
    • 自定义模块

    导入模块的几种方法

    • import
    import sys
    sys.path
    
    
    • from-import
      相对第一种方法来说更加简单,不用写模块名,只需要写方法名
    from subprocess import Popen, PIPE
    a = Popen(['ls'],stdout=PIPE)
    
    
    • 设置别名的方式
      个人不推荐这种方法,因为后期会给维护代码增加工作量
    import subprocess.Popen as f
    a = f(['ls'])
    

    datetime

    datetimepython处理日期和时间的标准库

    获取当前日期和时间

    >>> from datetime import datetime
    >>> now = datetime.now() # 获取当前datetime
    >>> print(now)
    2017-11-09 23:56:48.390000
    >>> print(type(now))
    <class 'datetime.datetime'>
    
    

    datetime 加减

    对日期和时间进行加减实际上就是把datetime往后或往前计算,得到新的datetime。加减可以用+-运算符,不过需要导入timedalta这个类

    注意timedelta 中只支持 days、seconds、microseconds

    >>> from datetime import datetime, timedelta
    
    >>> now = datetime.now()
    >>> print now
    2017-11-10 00:04:49.656000
    >>> now += timedelta(hours=10)
    >>> print now
    2017-11-10 10:04:49.656000
    >>> now += timedelta(hours=-10)
    >>> print now
    2017-11-10 00:04:49.656000
    
    

    获取指定日期和时间

    要指定某个日期和时间,我们直接用参数构造一个datetime

    >>> from datetime import datetime
    >>> dt = datetime(2015, 4, 19, 12, 20) # 用指定日期时间创建datetime
    >>> print(dt)
    2015-04-19 12:20:00
    
    

    时间转换

    datetime 转换为 timestamp

    在计算机中,我们把1970年1月1日 00:00:00 UTC+00:00时区的时刻称为epoch time,记为0(1970年以前的时间timestamp为负数),当前时间就是相对于epoch time的秒数,称为timestamp。
    你可以认为:

    timestamp = 0 = 1970-1-1 00:00:00 UTC+0:00
    

    对应的北京时间是:

    timestamp = 0 = 1970-1-1 08:00:00 UTC+8:00
    

    可见timestamp的值与时区毫无关系,因为timestamp一旦确定,其UTC时间就确定了,转换到任意时区的时间也是完全确定的,这就是为什么计算机存储的当前时间是以timestamp表示的,因为全球各地的计算机在任意时刻的timestamp都是完全相同的(假定时间已校准)。

    把一个datetime类型转换为timestamp只需要简单调用timestamp()方法:

    >>> from datetime import datetime
    >>> dt = datetime(2015, 4, 19, 12, 20) # 用指定日期时间创建datetime
    >>> dt.timestamp() # 把datetime转换为timestamp
    1429417200.0
    

    timestamp转换为datetime

    要把timestamp转换为datetime,使用datetime提供的fromtimestamp()方法:

    >>> from datetime import datetime
    >>> t = 1429417200.0
    >>> print(datetime.fromtimestamp(t))
    2015-04-19 12:20:00
    

    timestamp也可以直接被转换到UTC标准时区的时间:

    >>> from datetime import datetime
    >>> t = 1429417200.0
    >>> print(datetime.fromtimestamp(t)) # 本地时间
    2015-04-19 12:20:00
    >>> print(datetime.utcfromtimestamp(t)) # UTC时间
    2015-04-19 04:20:00
    

    str转换为datetime

    很多时候,用户输入的日期和时间是字符串,要处理日期和时间,首先必须把str转换为datetime。转换方法是通过datetime.strptime()实现,需要一个日期和时间的格式化字符串:

    >>> from datetime import datetime
    >>> cday = datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')
    >>> print(cday)
    2015-06-01 18:19:59
    
    

    datetime转换为str

    如果已经有了datetime对象,要把它格式化为字符串显示给用户,就需要转换为str,转换方法是通过strftime()实现的,同样需要一个日期和时间的格式化字符串:

    >>> from datetime import datetime
    >>> now = datetime.now()
    >>> print(now.strftime('%a, %b %d %H:%M'))
    Mon, May 05 16:28
    
  • 相关阅读:
    python基础-->流程控制-->分支结构-->单项分支-->双向分支
    python 控制语句基础---->代码块:以为冒号作为开始,用缩进来划分作用域,代表一个整体,是一个代码块,一个文件(模块)也称为一个代码块 | 作用域:作用的范围
    python基础语法
    Python Built-in Function 学习笔记
    身份证运算符 is 和 is not(检查两个数据在内存当中是否是同一个值) | 逻辑运算符 and or not | 数据类型的判断 isinstance
    算数运算符: +
    变量存储缓存机制 Number (int bool float complex)
    关于容器类型数据的强转一共:str() list() set() tuple() dict() 都可以转换成对应的数据类型 /Number 数据类型的强转一共: int() bool() flaot() complex() 都可以转换成对应的数据类型
    python 容器类型数据 (str list tuple set dict)
    Number 强制类型转换 int 强制转换整型 float 强制转换浮点型 complex 强制转换成复数 bool 强制转换成布尔类型,结果只有两种,要么True 要么 False """bool 可以转换所有的数据类型 everything"""
  • 原文地址:https://www.cnblogs.com/pingqiang/p/7812137.html
Copyright © 2011-2022 走看看