likes
comments
collection
share

写给Python社群的第7课:用 Python 模块了不起呀?就是了不起

作者站长头像
站长
· 阅读数 11

⛳️ Python 模块

Python 模块也叫做 Python 库,有环境内置的,也有第三方开发的,在 Python 任何一个项目中,都会用到大量的模块,本篇博客从自带标准库开始,带大家逐步进入模块世界。

Python 标准库知识

Python 标准库为程序员提供了大量的函数和功能,是 Python 的核心功能之一,当安装 Python 之后,系统已经将标准库进行了内置,便于后续直接使用。

标准库中内置对象有如下分类。

  • 内置函数
  • 内置常量
  • 内置类型
  • 内置异常

今天的学习也会围绕上述分类中的部分子条目展开。

⛳️ datetime 模块

datetime 模块,日期时间模块,在 Python 中出场率极高,所以我们直接从该模块开始学习。

请先记住模块的学习流程。

  1. 模块用前先导入;
  2. 找准模块对象的属性和方法;
  3. 牢记参数和返回值;
  4. 实战编码。

任何一款模块的学习,都遵循上述步骤,接下来看一下 datetime 吧,注意 datetime 是模块名,所以在导入的时候需要指定其内部对象。

from datetime import datetime,date,time

print(datetime.now())

上述程序会输出当前日期和时间,你是否发现在导入模块的时候,我们导入了 datetime 模块中的三个类名,分别是 datetimedatetime,对应日期时间,日期,时间。为何如此导入的原因,可以直接翻阅内置库代码,即 datetime.py 文件,打开之后发现其内部包含几个类,分别是 datetimetimedeltadatetzinfotimetimezone,即这几个类都可以被导入到其它文件中使用。

🔥 datetime 对象常见的实例方法

datetime 对象包含 datetime 对象的所有功能,算是一个总集,常见的对象方法如下:

  • datetime.now():获取当下的日期和时间;
  • datetime.date(t):获取当天日期,参数 tdatetime 实例参数;
  • datetime.time(t):获取当天时间,参数 t 同上;
  • datetime.ctime(t):获取格式化之后的日期时间字符串;
  • datetime.timestamp(t):获取指定时间的时间戳;
  • datetime.fromtimestampt(t_tamp):把时间戳转换为日期时间字符串;
  • datetime.strptime(dt_str,sf):按照 sf 样式格式化字符串;

除了上述清单方法外,datetime 对象还存在其它属性和方法,但我们要学习的主要是方法,这部分内容无法死记硬背,建议是每一个方法都在代码实践中进行尝试。

from datetime import datetime,date,time

# 获取当下时间
print(datetime.now())

# 存储一个临时变量
now = datetime.now()

# 获取传入 datetime 对象的日期部分
print(datetime.date(now))

# 获取传入 datetime 对象的时间部分
print(datetime.time(now))

# 获取传入 datetime 对象的字符串格式数据
print(datetime.ctime(now))

# 获取传入 datetime 对象转换的时间戳
print(datetime.timestamp(now))

以上代码都是正向用法,在项目实战中,会碰到如下几个场景,分别给大家展示。

📈 获取时间戳,保留到秒

from datetime import datetime,date,time
now = datetime.now()

print(int(datetime.timestamp(now)))

📈 保留时间戳到毫秒

from datetime import datetime,date,time
now = datetime.now()

print(int(datetime.timestamp(now)*1000))

📈 把当前时间按照年月日排列,即中文展示

from datetime import datetime,date,time
now = datetime.now()

print(now.strftime('%Y年%m月%d日'))

📈 把时间戳转换为日期时间

from datetime import datetime,date,time
now = 1667447170

print(datetime.fromtimestamp(now))

📈 根据数字生成日期和时间

from datetime import datetime,date,time


print(date(2022,10,10))
print(time(20,30,40))

在上面的代码中出现了 %Y%m%d 等占位符,它们都是日期格式化符号,其含义如下所示。

  • %Y:四位数年份;
  • %y:两位数年份;
  • %m:月份;
  • %d:日子;
  • %H:24 小时计时法中的小时;
  • %I:12 小时计时法中的小时;
  • %M:分钟;
  • %S:秒;
  • %a:本地简化星期;
  • %A:本地完整星期;
  • %b:本地简化月份;
  • %B:本地完整月份;
  • %c:本地日期和时间;
  • %j:表示年内的第几天;
  • %p:AM 或者 PM,本地化展示;
  • %U:星期数;
  • %w:星期几。

如果希望彻底掌握一个模块,实战中多用多查即可,检索关键字 Python + datetime

⛳️ time 模块

time 模块是将时间相关的函数进行了一次封装,其对象常用的方法如下:

  • time.sleep():程序挂起秒数;
  • time.perf_counter():返回当前 CPU 时间;
  • time.strftime(str_f):将带有时间格式的字符串解析为时间;
  • time.time():返回时间戳。

上述方法都很常见,所以大家可以自由进行练习,尤其是其中的 time.perf_counter() 在优化函数算法效率时,经常碰到。

⛳️ random 模块

随机数模块 random,在 Python 中出场率也非常高,其对象常用方法如下。

  • random.random():产生一个大于 0 小于 1 的随机浮点数;
  • random.uniform(a,b):在指定范围内生产随机浮点数;
  • random.randint(a, b):产生一个随机整数;
  • random.randrange([start], stop[, step]):从指定范围内,按指定基数递增的集合中获取一个随机数;
  • random.choice(sep):从序列中返回一个随机元素;
  • random.shuffle(x[, random]):打乱序列;

随机数最常见的需求与代码示例如下。

📈 随机生成一个 1~10 之间的数字,用于游戏 示例 1

import random
print(int(random.uniform(1,10)))

示例 2

import random
print(random.randint(1,10))

📈 返回列表中的任意元素

import random
my_list = [1,2,3,4,5,6]
print(random.choice(my_list))

⛳️ sys 和 os 模块

📈 sys 模块

sys 模块提供了与 Python 解析器相关的变量和函数,常见的属性和函数如下所示。

  • sys.path:获取环境变量配置;
  • sys.platform:获取操作系统标识;
  • sys.getwindowsversion():获取 windows 版本信息。
import sys
print(sys.path)
print(sys.platform)
sys.getwindowsversion()

📈 os 模块 os 模块是 Python 中操作文件的模块,对象常用方法如下。

  • os.getcwd():获取当前工作目录;
  • os.listdir(path):罗列传入路径文件和目录;
  • os.walk(path):深层次遍历指定路径下的所有子文件夹;
  • os.path.exists(path):检测目录是否存在;
  • os.mkdir(path):创建目录;
  • os.makedirs(path):创建目录,包含其子目录;
  • os.rmdir(path):删除非空目录;
  • os.path.split(path):拆分目录和文件名;
  • os.path.dirname(path):返回文件的绝对路径;
  • os.path.basename(path):获取文件名;
  • os.path.isdir(path):判断是否为目录/文件夹;
  • os.path.isfile(path):判断是否为文件;
  • os.path.getsize(path):获取文件大小;
  • os.system(cmd):执行控制台命令。

os 模块还有更多用法,这些都需要你在实战中不断夯实与积累,当然对拥有搜索引擎的我们来说,这都不是事。

转载自:https://juejin.cn/post/7168644874533601294
评论
请登录