Python 模块2

本文介绍了Python中的模块和包的使用,包括如何创建和导入包,以及字符编码的概念。接着讨论了时间处理,包括时间戳、结构化时间、字符串时间的相互转化,并提到了`time`和`datetime`模块。最后,简要提及了`sys`模块和序列化技术,如`json`和`pickle`。
摘要由CSDN通过智能技术生成

模块

module and package

  • 定义:包是通过使用’.模块名’来组织python模块名称空间的方式,具体而言,包就是一个包含_init_.py文件的文件夹

  • 目的:用文件夹将文件/模块组织起来

  • 注意:

    • Py3 即使包中没有_init_.py 也可以使用
    • Py2 如果没有_init_.py肯定报错
  • 创建包的目的不是为了运行,而是为了被导入使用

  • 包的本质依然还是模块

    • 使用时,import导入,导入带点的,点的最左边一定是包名
    • import导入文件时,产生名称空间的名字源于文件,import包,名称空间同样源于文件(包)_init_.py导入包的本质导入它
    ➜  school tree
    .
    ├── api
    │   ├── __init__.py
    │   ├── students.py
    │   └── versions.py
    ├── cmd
    │   ├── __init__.py
    │   └── manage.py
    ├── db
    │   ├── __init__.py
    │   └── models.py
    └── __init__.py
    

    import school

    School.api.students.gets()

    直接运行报错

    要想让他运行 no error

    school下的_init_.py添加from . import api ,找到api

    在api下的_init_.py添加from . Import student 可以运行test

    [外链图片转存失败(img-a7e7Mm8K-1564189871670)(/Users/xujiaqi/Library/Application Support/typora-user-images/image-20190725141610220.png)]

    [外链图片转存失败(img-sn4FEB0b-1564189871672)(/Users/xujiaqi/Library/Application Support/typora-user-images/image-20190725141642303.png)]

[外链图片转存失败(img-0iHomt4K-1564189871672)(/Users/xujiaqi/Library/Application Support/typora-user-images/image-20190725141722922.png)]

From…import…时,import后导入的模块,必须是一个不包含点(.),否则报错

在school/api/versions.py中导入school/cmd/manage.py

#在school/api/versions.py中
from school.cmd import manage  #绝对导入
manage.main()


from ..cmd import manage  #相对导入

字符编码

python主要识别文字内容,而不是关心拓展名。—>解释器

字符——>机器翻译——>二进制

字符如何对应特定数字的标准,这个标准就是字符编码

ASCII

GBK

Unicode

UTF-8(Unicode Transformation Format)

  • 对于英文字符来说,1Bytes
  • 中文字符,3bytes
  • 对于其他偏僻字符,更多的bytes存储

对于内存而言—>unicode

#time 模块

import time
time.sleep([n]) #休眠

time.time()#获取当前时间戳

在python中,表示时间通常有三种方式:

  • 时间戳(timetamp):表示的是从1970.01.01 00:00:00 开始按秒计算的偏移量
  • 格式化的时间字符串(format string)

2019-7-26 08:46:30

  • 结构化的时间(struct_time)—>元素,9个元素(年月日时分秒。一年的第几周,一年的第几天,夏令时
>>> import time
>>> time.time()
1564102386.316857
 [i for i in dir(time) if not i.startswith('_')]
['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', 'time', 'time_ns', 'timezone', 'tzname', 'tzset']
>>> time.strftime('%Y-%m-%d %X')
'2019-07-26 08:56:08'
>>> time.localtime()
time.struct_time(tm_year=2019, tm_mon=7, tm_mday=26, tm_hour=8, tm_min=58, tm_sec=2, tm_wday=4, tm_yday=207, tm_isdst=0)
>>> time.localtime()[2]  #索引
26

time 模块的常用方法

方法 描述
time.localtime([sec]) 将一个时间戳转化为一个当前时区的struct_time(若未提供参数,当前时间)
time.gmtime([sec]) 和localtime()类似,不同的是,其是将一个时间戳转换为UTC时区(0时区)的atruct_time
time.time() 返回当前时间戳
time.mktime(t) 将time.struct_time转化为时间戳
time.sl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值