python模块和包
python 的包就是文件夹,包中还可以有子包,也就是子文件夹。
python 的模块就是一个个 .py 文件,定义了各种功能接口。把复杂的功能封装为模块(又称为库),将功能实现的细节隐藏起来,使用该模块(库)的程序员不需要了解实现的细节。
在 python 的应用领域中,如:web 开发、人工智能、网络爬虫、数据分析等领域,已经存在了大量的模块,使用这些模块就可以轻松开发出应用程序。
层级关系:包 → 模块 → 函数
__init__.py 是每一个 python 包里必须存在的文件。
因此在创建包时,必须在包下面创建一个 __init__.py 文件,__init__.py 文件的内容可以为空,但文件必须存在。
创建包时需要注意:1. 要有一个主题,明确功能,方便使用;2. 层次分明,调用清晰。
如果想使用一个包或模块,应该先将包或模块导入当前的 .py 文件中。
在 python 中,导入一个包或模块的关键字是 import 。
用法:
import package
参数 package 表示被导入的包的名字。
模块的导入与包的导入有些类似。from ... import ... 可以从某个包中导入指定的模块。
用法:
from package import module
参数 package 表示被导入的模块所属包的名字,module 表示被导入的模块的名字。
如果一个包下还有子包,那么包名之间通过 . 来连接,可以通过 from package.child_package import module 来导入子包中的模块。
有时从不同的包中导入的模块名可能会相同,此时就可以在导入时给模块设置别名。from ... import ... as ... 可以从某个包中导入指定的模块,并设置别名。
用法:
from package import module as module_name
参数 package 表示被导入的模块所属包的名字,module 表示被导入的模块的名字,module_name 表示设置的别名。
其他程序员写好的功能封装成包(模块)发布到网上,这就是第三方包。使用第三方包可以有效地提高开发效率。
可以使用 python 的第三方包管理工具 pip 与 easy_install 获取第三方包,其中 pip 的使用率最高。
通过命令 pip install package 安装指定的包,例如安装 ipython:pip install ipython 。还可以通过 github.com 搜索 python 第三方包。
datetime 包可以获取当前日期时间、时间间隔,将时间对象转成时间字符串,将字符串转成时间类型。
datetime 模块的 datetime 函数可用于获取当前日期时间,用法:
from datetime import datetime
或
import datetime
datetime 模块的 timedelta 函数可用于获取时间间隔,用法:
from datetime import datetime
from datetime import timedelta
timedelta 函数有 days 、hours 、minutes 、seconds 、microseconds 、milliseconds 、week 这些参数。
示例:
from datetime import datetime
from datetime import timedelta
print(datetime.now())
yestoday = datetime.now() - timedelta(days=1)
print(yestoday)
tomorrow = datetime.now() + timedelta(days=1)
print(tomorrow)
结果:
2021-07-09 16:13:15.579308
2021-07-08 16:13:15.579308
2021-07-10 16:13:15.579308
datetime 模块的 timestamp 函数可用于将时间对象转成时间戳,用法:
from datetime import datetime
now = datetime.now()
datetime.timestamp(now)
参数 now 表示 datetime 时间对象,返回一个时间戳。
示例:
from datetime import datetime
now = datetime.now()
now_timestamp = datetime.timestamp(now)
print(now_timestamp)
结果:
1625818747.073041
datetime 模块的 fromtimestamp 函数可用于将时间戳转成时间对象,用法:
from datetime import datetime
datetime.fromtimestamp(timestamp)
参数 timestamp 表示时间戳,返回一个 datetime 时间对象。
示例:
from datetime import datetime
time_stamp = 1625818747.073041
now = datetime.fromtimestamp(time_stamp)
print(now)
结果:
2021-07-09 16:19:07.073041
datetime 模块的 strftime 函数可用于将时间对象转成字符串,用法:
from datetime import datetime
now = datetime.now()
date_str = now.strftime(format)
参数 format 表示时间对象匹配规则。
from datetime import datetime
date = datetime.now()
print(type(date))
date_str = date.strftime('%Y-%m-%d %H:%M:%S')
print(date_str)
print(type(date_str))
结果:
<class 'datetime.datetime'>
2021-07-09 16:22:23
<class 'str'>
datetime 模块的 strptime 函数可用于将时间字符串转成时间对象,用法:
from datetime import datetime
datetime.strptime(tt, format)
参数 tt 表示符合时间格式的字符串,format 表示时间字符串匹配规则。
from datetime import datetime
date_str = '2021-07-09 16:22:23'
date_obj = datetime.strptime(date_str, '%Y-%m-%d %H:%M:%S')
print(date_obj)
print(type(date_obj))
结果:
2021-07-09 16:22:23
<class 'datetime.datetime'>
字符 | 介绍 |
---|
%Y | 年份,如 2020 | %m | 月份,1 ~ 12 | %d | 天数,1 ~ 31 | %H | 小时,00 ~ 23 | %I | 小时,01 ~ 12 | %M | 分钟,00 ~ 59 | %S | 秒,0 ~ 61(闰年多占2秒) | %f | 毫秒 | %a | 星期简写,如星期三 Wed | %A | 星期全写,如星期三 Wednesday | %b | 月份简写,如二月,Feb | %B | 月份全写,如二月,February | %c | 本地日期和时间,如 Wed Feb 5 10:14:29 2021 | %p | 显示上午、下午,如 AM 表示上午,PM 表示下午 | %j | 一年中的第几天 | %U | 一年中的星期数 |
time 模块的 time 函数可用于生成时间戳。用法:
import time
time.time()
time 模块的 localtime 函数可用于获取本地时间。用法:
import time
time.localtime(timestamp)
参数 timestamp 表示时间戳,可不传。
示例:
import time
now = time.time()
print(now)
now_localtime = time.localtime()
print(now_localtime)
print(time.localtime(now))
结果:
1625824032.844112
time.struct_time(tm_year=2021, tm_mon=7, tm_mday=9, tm_hour=17, tm_min=47, tm_sec=12, tm_wday=4, tm_yday=190, tm_isdst=0)
time.struct_time(tm_year=2021, tm_mon=7, tm_mday=9, tm_hour=17, tm_min=47, tm_sec=12, tm_wday=4, tm_yday=190, tm_isdst=0)
time 模块的 sleep 函数可用于暂停程序运行一段时间。用法:
import time
time.sleep(second)
参数 second 表示希望程序被暂停运行的秒数。用法:
示例:
import time
now_localtime = time.localtime()
print(now_localtime)
time.sleep(5)
now_localtime = time.localtime()
print(now_localtime)
结果:
time.struct_time(tm_year=2021, tm_mon=7, tm_mday=9, tm_hour=17, tm_min=56, tm_sec=13, tm_wday=4, tm_yday=190, tm_isdst=0)
time.struct_time(tm_year=2021, tm_mon=7, tm_mday=9, tm_hour=17, tm_min=56, tm_sec=18, tm_wday=4, tm_yday=190, tm_isdst=0)
time 模块的 strftime 函数可用于将时间对象转成字符串。用法:
import time
time.strftime(format, t)
参数 format 表示时间对象匹配规则,t 表示 time.localtime 对应的时间类型。
示例:
import time
time_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
print(time_str)
print(type(time_str))
结果:
2021-07-09 18:01:01
<class 'str'>
time 模块的 strptime 函数可用于将时间字符串转成时间对象。用法:
import time
time.strptime(t, format)
参数 t 表示符合时间格式的字符串,format 表示时间字符串匹配规则。
示例:
import time
time_str = '2021-07-09 18:01:01'
time_obj = time.strptime(time_str, '%Y-%m-%d %H:%M:%S')
print(time_obj)
print(type(time_obj))
结果:
time.struct_time(tm_year=2021, tm_mon=7, tm_mday=9, tm_hour=18, tm_min=1, tm_sec=1, tm_wday=4, tm_yday=190, tm_isdst=-1)
<class 'time.struct_time'>
os 模块可以很方便地使用与操作系统相关的功能。通过 import os 导入 os 模块。
函数名 | 参数 | 介绍 | 示例 | 返回值 |
---|
getcwd | 无 | 返回当前的路径 | os.getcwd() | 字符串 | listdir | path | 返回指定路径下所有的文件或目录 | os.listdir(’/etc/nginx’) | 返回一个列表 | makedirs | path,mode | 创建多级目录 | os.makedirs(’/software/pathon’) | 无 | removedirs | path | 删除多级目录 | os.removedirs(’/software/python’) | 无 | rename | old_name,new_name | 给文件或文件名重命名 | os.rename(’/software/python’, ‘/software/py’) | 无 | rmdir | path | 只能删除空目录 | os.rmdir(’/software/python’) | 无 |
os.path 模块主要用于获取文件的属性。
函数名 | 参数 | 介绍 | 示例 | 返回值 |
---|
exists | path | 文件或路径是否存在 | os.path.exists(’/software’) | bool 类型 | isdir | path | 是否是路径 | os.path.isdir(’/software’) | bool 类型 | isabs | path | 是否是绝对路径 | os.path.isabs(‘python’) | bool 类型 | isfile | path | 是否是文件 | os.path.isfile(’/software/python/test.py’) | bool 类型 | join | path1,path2 | 路径字符串合并 | os.path.join(’/software’, ‘python’) | 字符串 | split | path | 以最后一层路径为基准切割 | os.path.split(’/software/python’) | 元组 |
sys 模块主要提供提供系统特定的参数和功能。
函数名 | 参数 | 介绍 | 示例 | 返回值 |
---|
modules(属性) | 无 | python 启动时加载的模块 | sys.modules | 列表 | path(属性) | 无 | 返回当前 python 的环境路径 | sys.path | 列表 | exit | arg | 退出程序 | sys.exit(0) | 无 | getdefaultencoding | 无 | 获取系统编码 | sys.getdefaultencoding() | 字符串 | platform(属性) | 无 | 获取当前系统平台 | sys.platform | 字符串 | vesion(属性) | 无 | 获取 python 版本 | sys.version | 字符串 | argv(属性) | *args | 程序外部获取传递给 python 的命令行参数列表 | sys.argv | 列表 |
|