Python 常用模块总结

内置模块

1、时间和日期

1、time 时间模块

时间转换图
Python 常用模块总结_第1张图片

  1. time模块内置方法

    print([i for i in dir(time) if not i.startswith('_')])
    
    time_func = ['altzone', 'asctime', 'clock', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'monotonic_ns', 'perf_counter', 'perf_counter_ns', 'process_time', 'process_time_ns', 'sleep', 'strftime', 'strptime', 'struct_time', 'thread_time', 'thread_time_ns', 'time', 'time_ns', 'timezone', 'tzname']
    
    
  2. 程序等待

    import time
    time.sleep(1) # 程序阻塞等待1秒
    print('继续执行')
    
  3. 获取当前时间戳

    import time
    time_stamp = time.time()
    print(time_stamp) # 1617353931.0670428
    
  4. 将时间错转换为结构化时间(time.struct_time)

    time.struct_time 类型可以使用的属性为:

    • struct_time.tm_year: 获取年份
    • struct_time.tm_mon: 获取月份
    • struct_time.tm_mday: 获取日期
    • struct_time.tm_hour:获取小时
    • struct_time.tm_min: 获取分钟
    • struct_time.tm_sec: 获取秒
    import time
    time_stamp = time.time() # now为float类型
    struct_time = time.localtime(time_stamp)
    print(struct_time) # time.struct_time(tm_year=2021, tm_mon=4, tm_mday=2, tm_hour=17, tm_min=4, tm_sec=59, tm_wday=4, tm_yday=92, tm_isdst=0)
    
  5. 将结构化时间转换为时间戳

    import time
    time_stamp = time.time()
    struct_time = time.localtime(time_stamp) # 将时间戳转换为结构化时间
    time_stamp = time.mktime(struct_time) # 将结构化时间转换为时间戳
    print(time_stamp) #  1617354299.0
    
  6. 时间相互转换 (2021-04-02 17:20:00)

    • %Y :代表年
    • %m : 代表月
    • %d :代表日
    • %H: 代表小时
    • %M:代表分钟
    • %S:代表秒
    import time
    time_stamp = 1617354299  # 时间戳
    struct_time = time.localtime(time_stamp) # 时间戳转换为结构化时间
    format_time = time.strftime('%Y-%m-%d %H:%M:%S', struct_time)  # 将结构化时间转换为格式化时间
    struct_time = time.strptime('%Y-%m-%d %H:%M:%S', format_time) # 将格式化时间转换为结构化时间
    time_stamp = time.mktime(struct_time) # 将结构化时间转换为时间戳
    
  7. 总结

    • time.sleep(int) :程序阻塞等待N秒

    • time.time() : 获取当前时间戳

    • time.locatime(time_stamp) :时间戳转换为结构化时间

    • time.mktime(struct_time) : 结构化时间转换为时间戳

    • time.strftime(str, struct_time): 将结构化时间格式化(2021-04-02 17:20:00)

    • struct_time = time.strptime(str, format_time) : # 将格式化时间转换为结构化时间(struct_time)

2、datetime 时间日期模块

datetime模块其实是一个py文件,该文件中主要有date、time、datetime、timedelta、timezone、tzinfo这几个类。

Python 常用模块总结_第2张图片

  1. datetime模块各个类说明

    类名 说明
    date 一个理想化的简单型日期。 属性: year,month, day
    time 一个独立于任何特定日期的理想化时间,它假设每一天都恰好等于 24*60*60 秒。属性:hour, minute, second, microsecond, tzinfo
    datetime 日期和时间的结合。属性:year,month, day, hour, minute, second, microsecond, tzinfo
    timedelta 表示两个 date 对象或者 time 对象,或者 datetime 对象之间的时间间隔,精确到微秒
    tzinfo 一个描述时区信息对象的抽象基类。 用来给 datetime 和 time 类提供自定义的时间调整概念(例如处理时区和/或夏令时)
    timezone 一个实现了 tzinfo 抽象基类的子类,用于表示相对于 世界标准时间(UTC)的偏移量。
  2. date 类

    • 查看date类型所有的属性方法

      from datetime import date
      print([i for i in dir(date) if not i.startswith('_')])
      
      date_method = ['ctime', 'day', 'fromisoformat', 'fromordinal', 'fromtimestamp', 'isocalendar', 'isoformat', 'isoweekday', 'max', 'min', 'month', 'replace', 'resolution', 'strftime', 'timetuple', 'today', 'toordinal', 'weekday', 'year']
      
      
    • today() 获取当前日期

      from datetime import date
      today = date.today()
      print(today) # datetime.date(2021, 4, 2)
      print(today.year) # 2021
      print(today.month) # 4
      print(today.day) # 2
      print(today.weekday) # 5
      
    • fromtimestamp(t) 将时间戳转换为日期格式

       from datetime import date
       t = 1617354299
       stamp_date = date.fromtimestamp(t)
       print(stamp_date) # datetime.date(2021, 4, 2)
      
    • fromisoformat(date_string) 将字符串转换为日期类型

      from datetime import date
      date_struct = date.fromtimestamp('2021-04-02')
      print(date_struct) # datetime.date(2021, 4, 2)
      
    • replace(year=None, month=None, day=None) 修改年月日

      from datetime import date
      today = date.today()
      last_year = today.replace(year=2020)
      print(last_year) # datetime.date(2020, 4, 2)
      
    • strftime(fmt) 格式化输出(将日期类型转换为字符串)

      from datetime import date
      today = date.today()
      today_format = today.strftime('%Y-%m-%d')
      print(today_format)  # '2021-04-02'
      
    • ctime() 将日期格式化输出

      from datetime import date
      today = date.today()
      today_format = today.ctime()
      print(today_format)  # 'Fri Apr  2 00:00:00 2021'
      
    • timetuple() 将日期转换为time模块中的struct类型

      from datetime import date
      time_struct = date.today().timetuple()
      print(time_struct) # time.struct_time(tm_year=2021, tm_mon=4, tm_mday=2, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=92, tm_isdst=-1)
      
    • isoformat、isocalendar、isoweekday 将日期类型转换为ISO标准的字符串

      from datetime import date
      today = date.today()
      print(today.isoformat()) # '2021-04-02'
      print(today.isocalendar()) # (2021, 13, 5)
      print(today.isoweekday()) # 5 (该值为星期五)
      
  3. time 类

    • 时间类所有属性方法

      from datetime import time
      print([i for i in dir(time) if not i.startswith('_')])
      time_methods = ['dst', 'fold', 'fromisoformat', 'hour', 'isoformat', 'max', 'microsecond', 'min', 'minute', 'replace', 'resolution', 'second', 'strftime', 'tzinfo', 'tzname', 'utcoffset']
      
    • 时间相关属性 (小时、分钟、秒、微妙)

      from datetime import time
      t = time(hour=10, minute=10, second=10, microsecond=10)
      print(t) # datetime.time(10, 10, 10, 10)
      print(t.hour) # 10
      print(t.minute) # 10
      print(t.second) # 10
      print(t.microsecond) # 10
      print(t.max) # datetime.time(23, 59, 59, 999999)
      print(t.min) # datetime.time(0, 0)
      
      
    • replace(hour=None, minute=None, second=None, microsecond=None) 替换(时、分、秒、微妙)

      from datetime import time
      t = time(hour=10, minute=10, second=10, microsecond=10)
      t.replace(hour=11, minute=9, second=2, microsecond=22)
      print(t) # datetime.time(11, 9, 2, 22)
      
    • isoformat() 将时间格式化

      from datetime import time
      t = time(hour=10, minute=10, second=10, microsecond=10)
      print(t.isoformat()) # '10:10:10.000010'
      t = time(hour=10, minute=10, second=10)
      print(t.isoformat()) # '10:10:10'
      
    • strftime(ftm) 将时间格式化

      from datetime import time
      t = time(hour=10, minute=10, second=10, microsecond=10)
      print(t.strftime('%H:%M:%S')) # '10:10:10'
      
  4. datetime 时间日期类

    该类继承了date类,同时实现啦time中的部门方法,可以说是整合啦,date和time类。

    • 时间日期类所有属性方法

      from datetime import datetime
      print([i for i in dir(datetime) if not i.startswith('_')])
      
      datetime_methods = ['astimezone', 'combine', 'ctime', 'date', 'day', 'dst', 'fold', 'fromisoformat', 'fromordinal', 'fromtimestamp', 'hour', 'isocalendar', 'isoformat', 'isoweekday', 'max', 'microsecond', 'min', 'minute', 'month', 'now', 'replace', 'resolution', 'second', 'strftime', 'strptime', 'time', 'timestamp', 'timetuple', 'timetz', 'today', 'toordinal', 'tzinfo', 'tzname', 'utcfromtimestamp', 'utcnow', 'utcoffset', 'utctimetuple', 'weekday', 'year']
      
      
    • 属性(year、month、day、hour、minute、second、microsecond)

      from datetime import datetime
      now = datetime.now()
      print(now) # datetime.datetime(2021, 4, 2, 23, 39, 10, 290274)
      print(now.year) # 2021
      print(now.month) # 4
      print(now.day) # 2
      print(now.hour) # 23
      print(now.minute) # 40
      print(now.second) # 39
      print(now.microsecond) # 328574
      print(now.max) # datetime.datetime(9999, 12, 31, 23, 59, 59, 999999)
      print(now.min) # datetime.datetime(1, 1, 1, 0, 0)
      
      
    • datetime对象、时间戳、格式化字符串相互转换

      from datetime import datetime
      now = datetime.now()
      # 将时间日期对象转换为时间戳
      print(now.timestamp()) # 1617377994.328574
      # 将时间戳转换为时间日期对象
      print(datetime.fromtimestamp(1617377994)) # datetime.datetime(2021, 4, 2, 23, 39, 54)
      # 将时间日期对象格式化输出(转换为字符串)
      print(now.strftime('%Y-%m-%d %H:%M:%S')) # '2021-04-02 23:39:54'
      # 将字符串转换为时间日期格式
      print(datetime.strptime('2021-04-02 19:32:19', '%Y-%m-%d %H:%M:%S')) # datetime.datetime(2021, 4, 2, 19, 32, 19)
      # ISO标准格式化,将ISO标准的字符串转换为datetime对象
      print(datetime.fromisoformat('2021-04-02 11:23:10')) #  datetime.datetime(2021, 4, 2, 11, 23, 10)
      # 将datetime对象转换为ISO标准的字符串
      print(now.isoformat()) # '2021-04-02T23:39:54.328574'
      
      
  5. timedelta 时间间隔类

    • 属性及方法

      from datetime import timedelta
      print([i for i in dir(timedelta) if not i.startswith('_')])
      
      delta = ['days', 'max', 'microseconds', 'min', 'resolution', 'seconds', 'total_seconds']
      
    • 简单使用

      from datetime import timedelta
      from datetime import datetime
      
      now = datetime.now() # 获取当前时间
      # timedelta(days=0, seconds=0, microseconds=0,milliseconds=0, minutes=0, hours=0, weeks=0)
      delta_1d = timedelta(days=1)
      tomorrow = now + delta_1d
      print(tomorrow) # datetime.datetime(2021, 4, 4, 0, 11, 12, 604147)
      

3、calendar 日历模块

你可能感兴趣的:(python,python)