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

本文介绍了Python中的模块和包的概念,包括它们的层级关系、如何创建和导入包,以及如何使用import语句导入模块。还详细讲解了时间操作相关的模块,如time、datetime和os,展示了如何进行时间转换和暂停程序运行等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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()字符串
listdirpath返回指定路径下所有的文件或目录os.listdir(’/etc/nginx’)返回一个列表
makedirspath,mode创建多级目录os.makedirs(’/software/pathon’)
removedirspath删除多级目录os.removedirs(’/software/python’)
renameold_name,new_name给文件或文件名重命名os.rename(’/software/python’, ‘/software/py’)
rmdirpath只能删除空目录os.rmdir(’/software/python’)
  • os.path 模块:

os.path 模块主要用于获取文件的属性。

函数名参数介绍示例返回值
existspath文件或路径是否存在os.path.exists(’/software’)bool 类型
isdirpath是否是路径os.path.isdir(’/software’)bool 类型
isabspath是否是绝对路径os.path.isabs(‘python’)bool 类型
isfilepath是否是文件os.path.isfile(’/software/python/test.py’)bool 类型
joinpath1,path2路径字符串合并os.path.join(’/software’, ‘python’)字符串
splitpath以最后一层路径为基准切割os.path.split(’/software/python’)元组
  • sys 模块:

sys 模块主要提供提供系统特定的参数和功能。

函数名参数介绍示例返回值
modules(属性)python 启动时加载的模块sys.modules列表
path(属性)返回当前 python 的环境路径sys.path列表
exitarg退出程序sys.exit(0)
getdefaultencoding获取系统编码sys.getdefaultencoding()字符串
platform(属性)获取当前系统平台sys.platform字符串
vesion(属性)获取 python 版本sys.version字符串
argv(属性)*args程序外部获取传递给 python 的命令行参数列表sys.argv列表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值