跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python算法

Python 标准库与第三方库实战:日期、字符串与 Excel 操作

Python 标准库包含内置模块如 datetime 和 os,第三方库需通过 pip 安装。本文演示了日期计算、字符串处理、文件搜索及二维码生成等实战案例,涵盖 leetcode 算法题解法与 Excel 数据读取技巧,帮助开发者快速掌握库的使用场景与最佳实践。

FlinkHero发布于 2026/3/22更新于 2026/9/1252 浏览
Python 标准库与第三方库实战:日期、字符串与 Excel 操作

1 ~> 使用库:标准库和第三方库

在开发中,我们不需要重复造轮子。库就是别人已经写好的代码,可以直接拿来用。一个语言能否流行,不仅看语法是否简单,更看生态是否完备——也就是是否有足够的库应对各种场景。

按照来源,库大致分为两类:

  • 标准库:Python 自带,安装后直接使用。
  • 第三方库:他人实现,需额外安装。

2 ~> 标准库

2.1 认识标准库

Python 内置了丰富的功能模块,涵盖文本处理、时间日期、数学计算、文件目录、数据存储、加密解密、操作系统相关、并发编程、网络编程及多媒体等。无需死记硬背,知道有哪些功能,需要时能查到即可。

2.2 使用 import 导入模块

通过 import 语句可以导入标准库中的模块。所谓'模块',本质上就是一个独立的 .py 文件。导入后,该文件中的代码会被执行,并可在当前文件中调用其功能。

import [模块名]

2.3 代码示例:日期计算

输入任意两个日期,计算间隔天数。思路是构造两个日期对象,相减即可得到差值。

import datetime

date1 = datetime.datetime(2012, 2, 14)
date2 = datetime.datetime(2022, 7, 12)
print(date2 - date1)

实际编写时,为了代码简洁,推荐以下写法:

# 方式一:直接导入类
from datetime import datetime
date1 = datetime(2006, 12, 14)
date2 = datetime(2025, 12, 14)
print(date2 - date1)

# 方式二:给模块起别名
import datetime as dt
date1 = dt.datetime(2006, 12, 14)
date2 = dt.datetime(2025, 12, 14)
print(date2 - date1)

注意:如果英文文档加载慢,可查阅本地离线文档或搜索引擎,但需注意版本差异。

2.4 代码示例:字符串操作

字符串是 Python 的内置类型,许多方法无需导入模块即可使用。

翻转单词顺序

题目要求输入英文句子,翻转单词顺序但保持单词内字符不变。例如 "I am a student." 变为 "student. a am I"。

利用 split 切分,reverse 逆序,join 拼接:

def reverseWords(s: str):
    tokens = s.split(' ')
    tokens.reverse()
    return ' '.join(tokens)

print(reverseWords("I am a student."))
旋转字符串

判断字符串 s 经过若干次旋转是否能变成 goal。核心技巧是将 s 与自身拼接,若 goal 是 s+s 的子串且长度一致,则匹配成功。

def rotateString(s: str, goal: str) -> bool:
    if len(s) != len(goal):
        return False
    return goal in (s + s)

print(rotateString("abcde", "cdeab"))  # True
print(rotateString("abcde", "edcba"))  # False
统计前缀字符串数目

给定字符串数组 words 和目标字符串 s,统计 words 中有多少个字符串是 s 的前缀。

def countPrefixes(words: list, s: str) -> int:
    count = 0
    for word in words:
        if s.startswith(word):
            count += 1
    return count

print(countPrefixes(['a', 'b', 'c', 'ab', 'bc', 'abc'], 'abc'))  # 3

2.5 代码示例:文件查找工具

指定路径和关键字,递归查找文件名中包含关键字的文件。使用 os.walk 可轻松实现目录遍历。

import os

inputPath = input('请输入待搜索路径:')
pattern = input('请输入待搜索关键词:')

for dirpath, _, filenames in os.walk(inputPath):
    for f in filenames:
        if pattern in f:
            print(f'{dirpath}/{f}')

此方法比手动遍历更高效,适合快速定位文件。

3 ~> 第三方库

3.1 认识第三方库

标准库虽强,但面对特定需求(如生成二维码、复杂 Excel 操作)往往不够用。此时需借助第三方库,它们集合了全球开发者的智慧。

确定库后,使用 pip 安装。pip 是 Python 内置的包管理器,类似手机应用商店。

3.2 使用 pip

确保安装 Python 时勾选了添加环境变量选项。命令行输入 pip 若无报错,说明环境就绪。

安装命令:

pip install [库名]

若 PyCharm 提示找不到模块,请检查解释器设置是否正确。

3.3 代码示例:生成二维码

使用 qrcode 库可将字符串转为图片。

  1. 安装:pip install qrcode[pil]
  2. 编写代码:
import qrcode

img = qrcode.make('艾莉丝努力练剑!')
img.save('qrcode.png')

运行后生成 qrcode.png,扫码即可查看内容。二维码本质是黑白点阵表示的字符串,日常多用于 URL 跳转。

3.4 代码示例:操作 Excel

读取 Excel 推荐使用 xlrd 模块。注意:新版 xlrd 已不再支持 .xlsx 格式,旧版需指定版本号安装。

需求:读取 d:/test.xlsx,计算 100 班同学的平均分。

import xlrd

# 打开工作簿
xlsx = xlrd.open_workbook('C:/Users/18106/Desktop/test.xlsx')
# 获取第一个标签页
table = xlsx.sheet_by_index(0)
# 获取总行数
nrows = table.nrows

total = 0
count = 0
# 从第 1 行开始遍历(假设第 0 行为表头)
for i in range(1, nrows):
    classID = table.cell_value(i, 1)
    if classID == 100:
        total += table.cell_value(i, 2)
        count += 1

if count > 0:
    print(f'平均分:{total / count}')
else:
    print('未找到符合条件的数据')

提示:Excel 自身支持求和,但复杂逻辑下,脚本处理更灵活高效。


掌握标准库与第三方库的使用,能显著提升开发效率。遇到新需求时,先查官方文档,再考虑是否需要引入外部库。

目录

  1. 1 ~> 使用库:标准库和第三方库
  2. 2 ~> 标准库
  3. 2.1 认识标准库
  4. 2.2 使用 import 导入模块
  5. 2.3 代码示例:日期计算
  6. 方式一:直接导入类
  7. 方式二:给模块起别名
  8. 2.4 代码示例:字符串操作
  9. 翻转单词顺序
  10. 旋转字符串
  11. 统计前缀字符串数目
  12. 2.5 代码示例:文件查找工具
  13. 3 ~> 第三方库
  14. 3.1 认识第三方库
  15. 3.2 使用 pip
  16. 3.3 代码示例:生成二维码
  17. 3.4 代码示例:操作 Excel
  18. 打开工作簿
  19. 获取第一个标签页
  20. 获取总行数
  21. 从第 1 行开始遍历(假设第 0 行为表头)

更多推荐文章

查看全部
  • Vibe Coding:AI 时代的新编程范式与实践指南
  • Node.js 在线 Markdown 编辑器:支持表格、公式与代码高亮
  • Prompt 的基本结构:指令 + 背景 + 示例
  • Qwen3Guard-Gen-WEB 内容风险识别工具部署与实测体验
  • lwIP 实战解析:基于 CGI 与 SSI 的嵌入式 WebServer 开发
  • 前端日志本地持久化方案
  • NativeScript-Vue 实战:用 Vue 语法构建高性能原生应用
  • MIT 室内场景识别数据集介绍与模型训练实战
  • Linux sigaction 函数详解:信号处理机制与最佳实践
  • 2024 年前端主流框架技术总结与探索
  • AI 时代技术民主化:文科生为何成最大受益者
  • Go语言Map的两种Get操作源码剖析与实现原理
  • 前端监控实践:错误捕获、性能分析与用户行为追踪
  • 数据结构:快速排序算法详解与实现
  • WebGL 缓冲区使用与多点绘制实战
  • Spring Cloud+AI :实现分布式智能推荐系统
  • MyBatisPlus 与 Thymeleaf 全栈分页实战
  • Python 实现活性污泥模型 ASM2d 参数校准与优化
  • 5 款主流 AI 写小说工具测评与推荐
  • 扩展 Yahoo! 流式基准测试:Flink 与 Storm 性能深度对比

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online