Python模块 百日筑基之得气
2019-02-17 01:53:09来源:博客园 阅读 ()
模块:
模块是一系列常用功能的集合体,一个py文件就是一个模块
1、从文件级别组织程序,更方便管理
随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用
2、拿来主义,提升开发效率
同样的原理,我们也可以下载别人写好的模块然后导入到自己的项目中使用,这种拿来主义,可以极大地提升我们的开发效率,避免重复造轮子。
每个模块都是一个独立的名称空间,定义在这个模块中的函数,把这个模块的名称空间当做全局名称空间,这样我们在编写自己的模块时,
就不用担心我们定义在自己模块中全局变量会在被导入时,与使用者的全局变量冲突
导入模块
import 模块名,模块名,模块名 可以写多个,但是不建议这么写.建议分开写,多行导入:易于阅读 易于编辑 易于搜索 易于维护。
import 导入过来的功能都需要,使用模块点的方法去执行
import 模块名 as 别名 为模块起别名
from 模块名 import 函数名,函数名 可以单独导出相应的函数,而不用导出所有函数.
from 模块名 import 函数名 as 别名,函数名 as 别名 可以更改多个.
from 模块名 import * 导出模块下所有函数,不推荐使用
# __all__ = ['可以被*导入的内容,是一个列表'] 用这种方式强制*只导出相应的函数
if __name__ == '__main__': # 可以在下面放一些需要测试的函数,下面的函数会被导入时所执行.
模块的搜索顺序:
内存中已经加载的模块->内置模块->sys.path路径中包含的模块
import sys
print(sys.path) # 打印当前环境变量
如果要添加其它盘符中的模块,需要把模块的路径加载到Python的环境中去.
sys.path.insert(0,r'模块路径') # 将模块路径插入Python环境中
编译Python文件
为了提高加载模块的速度,提高的是加载速度而绝非运行速度。python解释器会在__pycache__目录中下缓存每个模块编译后的版本,格式为:module.version.pyc。通常会包含python的版本号。例如,在CPython3.3版本下,spam.py模块会被缓存成__pycache__/spam.cpython-33.pyc。这种命名规范保证了编译后的结果多版本共存。
Python检查源文件的修改时间与编译的版本进行对比,如果过期就需要重新编译。这是完全自动的过程。并且编译的模块是平台独立的,所以相同的库可以在不同的架构的系统之间共享,即pyc使一种跨平台的字节码,类似于JAVA火.NET,是由python虚拟机来执行的,但是pyc的内容跟python的版本相关,不同的版本编译后的pyc文件不同,2.5编译的pyc文件不能到3.5上执行,并且pyc文件是可以反编译的,因而它的出现仅仅是用来提升模块的加载速度的,不是用来加密的。
#提示:
1.模块名区分大小写,foo.py与FOO.py代表的是两个模块
2.在速度上从.pyc文件中读指令来执行不会比从.py文件中读指令执行更快,只有在模块被加载时,.pyc文件才是更快的
3.只有使用import语句是才将文件自动编译为.pyc文件,在命令行或标准输入中指定运行脚本则不会生成这类文件.
time模块
在计算机中时间共有三种方式:
1.时间戳: 通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型
2.格式化字符串时间: 格式化的时间字符串(Format String): ‘1999-12-06’
3.结构化时间:元组(struct_time) struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)
python中时间日期格式化符号:
%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 当前时区的名称
%% %号本身
time模块的时间转换方式:
从时间戳到字符串时间的转换:
import time nTime = time.time() print("时间戳:%d" % (nTime)) structTime = time.localtime(nTime) print("结构化时间:",structTime) strTime = time.strftime("%Y-%m-%d %H:%M:%S",structTime) print("字符串时间:",strTime) # 打印内容如下: 时间戳:1547561163 结构化时间: time.struct_time(tm_year=2019, tm_mon=1, tm_mday=15, tm_hour=22, tm_min=6, tm_sec=3, tm_wday=1, tm_yday=15, tm_isdst=0) 字符串时间: 2019-01-15 22:06:03
从字符串时间回退到时间戳:
strTime = "2019-01-15 22:06:03" print("字符串时间:",strTime) struct_Time = time.strptime(strTime,"%Y-%m-%d %H:%M:%S") print("结构化时间:",struct_Time) nTime = time.mktime(struct_Time) print("时间戳:",nTime) # 打印内容如下: 字符串时间: 2019-01-15 22:06:03 结构化时间: time.struct_time(tm_year=2019, tm_mon=1, tm_mday=15, tm_hour=22, tm_min=6, tm_sec=3, tm_wday=1, tm_yday=15, tm_isdst=-1) 时间戳: 1547561163.0
datetime模块
from datetime import datetime print(datetime.now()) # 获取当前时间 # 打印内容如下: 2019-01-15 22:16:08.941898
指定时间并创建一个datetime的类
from datetime import datetime dt = datetime(2019,1,15,22,20,0) print(type(dt),dt) # 打印内容如下: <class 'datetime.datetime'> 2019-01-15 22:20:00
datetime转换时间戳:
from datetime import datetime dt = datetime.now() new_timestamp = dt.timestamp() print(new_timestamp) # 打印内容如下: 1547562274.605821
将时间戳转换成字符串时间
from datetime import datetime nTime = datetime.timestamp(datetime.now()) # 时间戳 print(datetime.fromtimestamp(nTime)) # 打印内容如下: 2019-01-15 22:29:50.470887
将str转换成datetime
from datetime import datetime nTime = datetime.strptime("2019-1-15","%Y-%m-%d") print(type(nTime),nTime) # 打印内容如下: <class 'datetime.datetime'> 2019-01-15 00:00:00
将datetime转换成str
from datetime import datetime nTime = datetime.now() strTime = datetime.strftime(nTime,"%Y-%m-%d %H:%M:%S") print(type(strTime),strTime) # 打印内容如下: <class 'str'> 2019-01-15 22:39:44
datetime的加减法
需要使用timedelta类
from datetime import datetime,timedelta nTime = datetime.now() print("当前时间:",nTime) otherTime = nTime - timedelta(days=1) print("减去一天后的时间:",otherTime) # 打印内容如下: 当前时间: 2019-01-15 22:46:05.038629 减去一天后的时间: 2019-01-14 22:46:05.038629
timedelta可选参数
days: float = ...,
seconds: float = ...,
microseconds: float = ...,
milliseconds: float = ...,
minutes: float = ...,
hours: float = ...,
weeks: float = ..., *,
fold: int = ..
原文链接:https://www.cnblogs.com/caesar-id/p/10381170.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:多任务拷贝小案例
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash