[阶段一] 12. Python模块和包

python模块和包

  • 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 的第三方包管理工具 pipeasy_install 获取第三方包,其中 pip 的使用率最高。

通过命令 pip install package 安装指定的包,例如安装 ipython:pip install ipython。还可以通过 github.com 搜索 python 第三方包。

  • datetime 包:

datetime 包可以获取当前日期时间、时间间隔,将时间对象转成时间字符串,将字符串转成时间类型。

datetime 模块的 datetime 函数可用于获取当前日期时间,用法:

from datetime import datetime

或

import datetime

datetime 模块的 timedelta 函数可用于获取时间间隔,用法:

from datetime import datetime

from datetime import timedelta

timedelta 函数有 dayshoursminutessecondsmicrosecondsmillisecondsweek 这些参数。

示例:

# coding:utf-8

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 时间对象,返回一个时间戳。

示例:

# coding:utf-8

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 时间对象。

示例:

# coding:utf-8

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 表示时间对象匹配规则。

# coding:utf-8

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 表示时间字符串匹配规则。

# coding:utf-8

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 模块的 time 函数可用于生成时间戳。用法:

import time

time.time()

time 模块的 localtime 函数可用于获取本地时间。用法:

import time

time.localtime(timestamp)

参数 timestamp 表示时间戳,可不传。

示例:

# coding:utf-8

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 表示希望程序被暂停运行的秒数。用法:

示例:

# coding:utf-8

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 对应的时间类型。

示例:

# coding:utf-8

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 表示时间字符串匹配规则。

示例:

# coding:utf-8

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 模块:

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 模块:

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 模块:

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 列表

猜你喜欢

转载自blog.csdn.net/miss1181248983/article/details/120227802