python模块知识一 自定义模块、time、datetime时间模块
第五章 模块
1.自定义模块:
模块分类:
- 内置模块(标准库)-- python解释器自带的.py文件(模块)
- 第三方模块(各种大神写的)-- 需要额外下载(并发编程pypi)
- 自定义模块(自己写的)--不用额外下载
每一个py文件就是一个模块
import #导入模块
模块的好处:
- 避免些重复代码
- 可以多次利用
- 拿来主义
导入模块发生的事情:
- 当前的名称空间中开辟一个新空间(test)
- 将模块中所有的代码执行
- 通过 模块名.函数名 进行查找函数
使用别名使文件名更短:
import test as t
print(locals())#查看当前空间的变量
i mport test
print(locals())
#调用导入模块的函数
test.func()
#使用别名
import test as t
t.func()
- 不同模块使用同一别名做兼容性
msg = {1:"扳手",2:"螺丝刀"}
choose = input(msg)
if choose == 1:
import meet as t
elif choose == 3:
import test as t
t.func()
- from :
from 和import区别:
import:#将整个模块运行
缺点:占用内存大。
优点:不会和当前文件定义的变量或者函数发生冲突
from:
缺点:会与当前的文件定义的变量或者函数发生冲突,(可以用别名解决)
优点:占用内存小
from * :--拿模块所有
会出现覆盖现象,不能解决,不建议使用
__all__ = ["可被导入的函数名和变量名"]#写在模块中配合from * 使用指定要拿的
name = 'cc'
def func():
print('is 666')
from test import *
print(name)
func()
name = "ww"
from test import name as n#别名
print(name)
print(n)
模块导入的坑
例如:不要三个py文件相互导入,会形成环路
模块的两种用法:
脚本:(在cmd中执行 python text.py
模块:自测函数不会被导入
def func():
print(1)
if __name__ == '__main__':#自测接口
func()
导入路径:
相对路径:
from day15.t1 import meet
print(meet.name)
绝对路径:
#错误引用
from r"D:\" import meet
from ../
#正确引用
from sys import path
print(sys.path)
path.insert(0,"D:\\")
import meet
print(meet.name)
sys.path中模块的顺序:自定义 > 内置 > 第三方
2.time --时间模块
- time.time():--时间戳,浮点数,可运算
- time.sleep():--睡眠 #秒
import time
print(time.time() + 5000)
time.sleep(3)#睡眠3秒
- time.strftime("格式化","结构体时间"):将时间戳、结构体时间转换成字符串时间
- time.gmtime():--元组形式 命名元组,结构体时间,格林尼治时间
- time.localtime():计算机当前时间,结构体时间
print(time.strftime("%Y-%m-%d %H:%M:%S"))
print(time.gmtime())
print(time.gmtime()[0])
print(time.gmtime().tm_year)
#将时间戳转换成字符串时间
print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(15000)))
- time.strptiem():将字符串时间转换成结构化时间
- time.mktime():将结构化时间转换成时间戳
print(time.strptime("2024-3-16 12:03:30","%Y-%m-%d %H:%M:%S"))
#将字符串时间转换成时间戳
print(time.mktime(time.strptime("2024-3-16 12:03:30","%Y-%m-%d %H:%M:%S")))
print(time.mktime(time.gmtime()))
3.datetime 模块
用处:记录日志使用,计算时间
from datetime import datetime,timedelta
print(datetime.now())#获取当前时间
print(type(datetime.now()))#--对象
print(datetime(2019,5,20,13,14,00))#指定日期标准化
print(datetime(2019,5,20,13,14,00) - datetime(2019,5,20,13,14,00))
#将当前时间转换成时间戳
t = datetime.now()
print(t.timestamp())
#将时间戳转换成当前时间
import time
print(datetime.fromtimestamp(time.time()))
print(datetime.fromtimestamp(150000))
#字符串转成对象
print(type(datetime.strptime("2019-10-10 22:23:24","%Y-%m-%d %H:%M:%S")))
#将对象转成字符串
print(str(datetime.now()))
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
#timedelta 时间运算.加减
print(datetime.now() + timedelta(hours = 30 * 24 *12))
python模块知识一 自定义模块、time、datetime时间模块的更多相关文章
- 第三十二节,datetime时间模块
首先要引入import datetime时间模块 datetime.date.today()模块函数 功能:输出系统年月日输出格式 2016-01-26[无参] 使用方法:datetime.date. ...
- day5模块学习 -- time、datetime时间模块
1.定义 模块:用来从逻辑上组织python(变量,函数,类,逻辑:实现一个功能)代码,本质就是.py结尾的python文件(文件名:test.py,对应的模块名test) 包:用来从逻辑上组织模块的 ...
- python--模块之time,datetime时间模块
time: 表示时间的三种方式:时间戳.格式化的时间字符串.元组时间戳是计算机能够识别的时间:时间字符串是我们能够看懂的时间:元组是用来操作时间: 导入时间模块import time 1,时间戳(ti ...
- python基础知识13-迭代器与生成器,导入模块
异常处理作业讲解 file = open('/home/pyvip/aaa.txt','w+') try: my_dict = {'name':'adb'} file.write(my_dict['a ...
- 1.19 Python基础知识 - 软件目录开发规范及不同模块之间的调用
一个软件项目的开发,除了需要很厉害的开发能力,同时在软件开发项目时,也需要对项目结构有良好的组织能力,将功能进行拆分,不同的功能放在不同的目录或文件中,方便日后的维护,升级等操作.比如核心代码的目录, ...
- (6)time&datetime(时间模块)
什么是时间模块 就是处理时间相关的功能 如用户注册的时间.统计程序运行的时间等 time 模块 计算机中有三种时间 1.时间戳 从1970年到今天,这个时间段中间经历的秒数 获取时间戳:time.t ...
- 模块讲解----time与date time(时间模块)
time和datetime 在python中,通常有一下几种方式来表示时间:1.时间戳:2.格式化时间字符串:3.元祖(struct_time):其中元祖(struct_time分为九个元素) UTC ...
- python将str类型的数据变成datetime时间类型数据
如下: import datetime date_str = '2019_05_09' date_date = datetime.date(*map(int, date_str.split('_')) ...
- python常用标准库(时间模块 time和datetime)
常用的标准库 time时间模块 import time time -- 获取本地时间戳 时间戳又被称之为是Unix时间戳,原本是在Unix系统中的计时工具. 它的含义是从1970年1月1日(UTC/G ...
随机推荐
- 条款14:在资源管理类中小心copying行为
请牢记: 1.复制RAII对象必须一并复制它所管理的资源,所以资源的copying行为决定RAII对象的copying行为. 2.普遍常见的RAII class copying行为是:抑制copyin ...
- java设计模式-原型(prototype)
有时候创建对象是需要耗费很多资源,但是每个对象之间又有大量的重复.我们可以选择在创建好一个对象后,以之作为模板克隆出其他对象,稍作修改,即可用于其他地方. 需要实现Cloneable接口,重写clon ...
- Servlet 3.0异步特性初探
Servlet 是 Java 为了编写服务端程序而定义的一个接口规范,在 Servlet 3.0 以后支持了异步的操作. 最近项目添加了一个代码热部署的功能,在客户端输入信号,信号到达 Web 服务器 ...
- Android开发需要了解的 IM 知识
引言 即便在通讯如此发达的今天,IM 也依然是诸多场景下非常重要的基础能力.因此做为 一名 Android 开发,不可避免的会遇到一些IM 相关的需求或问题.本文以一个Android开发的角度来讲述I ...
- java集合知识点总结
下面是java中常见的集合: List--列表:内部元素有序,可以重复, ArrayList:线程不安全,效率高.数据结构是线性表,底层结构是顺序表,也就是数组,有唯一的下标来指定元素的位置,查询快, ...
- 系统学习 Java IO ---- 目录,概览
Java IO 类的系统教程,原创.主要参考自英文教程 Java IO Tutorial 和 Java Doc. http://tutorials.jenkov.com/java-io/index.h ...
- 基于STM32F429和Cube的主从定时器多通道输出固定个数的PWM波形
主从定时器的原理已在上篇博文: 基于STM32F429+HAL库编写的定时器主从门控模式级联输出固定个数PWM脉冲的程序 讲解了,这篇重点就讲如何实现多通道的PWM级联输出. 1.软件环境 Keil5 ...
- 【koa2基础框架封装】基于Proxy路由按需加载器和初始加载器
我们在使用koa2做路由拦截后一般都习惯于直接将查找对应处理函数的过程映射到项目的文件夹目录,如: router.get('/test', app.controller.index.test); ap ...
- HDU 6058:Kanade's sum(思维)
题目链接 题意 给出一个n和一个k,求1~n的每个区间的第k大的总和是多少,区间长度小于k的话,贡献为0. 思路 首先有一个关系:当一个数是第k大的时候,前面有x个比它大的数,那么后面就有k-x-1个 ...
- 浅谈 JavaScript 中 Array 类型的方法使用
前言:Array 类型是 JavaScript 中除了 Object 类型以外最常用的类型. 一.创建数组 JavaScript 中的数组与其他语言中的数组有着很大的区别.例如Java.PHP等语言中 ...