首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python 20 个常用标准模块

Python 20 个常用标准模块

作者头像
用户11081884
发布2026-07-20 17:26:32
发布2026-07-20 17:26:32
220
举报

Python标准库提供了丰富的模块,帮助开发者高效处理各种编程任务。本文将介绍20个最常用的标准模块,包括它们的用途、使用方法和代码示例。

1. re — 正则表达式

用途:在字符串内执行高级搜索、替换与分割,轻松应对复杂文本模式。

代码语言:javascript
复制
importre

text = "Python 3.10 was released on October 4, 2021"

# 查找版本号
match = re.search(r"\d+\.\d+", text)
print(match.group())                 # 3.10

# 替换年份
new_text = re.sub(r"\d{4}", "2025", text)
print(new_text)                      # Python 3.10 was released on October 4, 2025

2. json — JSON 数据编解码

用途:Python 对象与 JSON 文本之间高效序列化与反序列化

代码语言:javascript
复制
importjson

data = {"name": "Alice", "age": 25, "skills": ["Python", "SQL"]}

# Python -> JSON
json_str = json.dumps(data, indent=2)
print(json_str)
# {
#   "name": "Alice",
#   "age": 25,
#   "skills": [
#     "Python",
#     "SQL"
#   ]
# }

# JSON -> Python
parsed = json.loads(json_str)
print(parsed["name"])                # Alice

3. os — 操作系统交互

用途:跨平台操作文件、目录、环境变量,是自动化脚本的基础。

代码语言:javascript
复制
importos

print(os.getcwd())                   # /Users/yourname/project
os.makedirs("demo_dir", exist_ok=True)

print(os.listdir("."))               # ['demo_dir', ...]

full_path = os.path.join("demo_dir", "file.txt")
print(full_path)                     # demo_dir/file.txt

4. sys — 解释器相关功能

用途:获取或修改 Python 解释器的行为,例如命令行参数、模块路径。

代码语言:javascript
复制
importsys

print(sys.argv)                      # ['demo.py']
print(sys.version_info)              # sys.version_info(major=3, minor=11, ...)
sys.path.append("/custom/path")
print("/custom/path"insys.path)    # True

5. datetime — 日期与时间

用途:精准计算时间差、格式化输出、解析字符串,日志与调度必备。

代码语言:javascript
复制
fromdatetimeimportdatetime, timedelta

now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M"))   # 2025-08-19 14:23

tomorrow = now+timedelta(days=1)
print(tomorrow.date())                  # 2025-08-20

date_obj = datetime.strptime("2025-12-31", "%Y-%m-%d")
print(date_obj)                         # 2025-12-31 00:00:00

6. math — 数学运算

用途:提供高精度浮点函数与常量,满足科学计算需求。

代码语言:javascript
复制
importmath

print(math.sqrt(16))          # 4.0
print(math.pow(2, 3))         # 8.0
print(math.sin(math.pi/2))  # 1.0
print(math.factorial(5))      # 120

7. random — 随机数生成

用途:生成伪随机整数、浮点数或抽样,支持洗牌与加权选择。

代码语言:javascript
复制
importrandom

print(random.randint(1, 100))          # 42
print(random.random())                 # 0.374540...
colors = ["red", "green", "blue"]
print(random.choice(colors))           # green
random.shuffle(colors)
print(colors)                          # ['blue', 'red', 'green']

8. collections — 高级容器

用途:更智能的数据结构(计数器、默认字典、命名元组)简化代码。

代码语言:javascript
复制
fromcollectionsimportCounter, defaultdict, namedtuple

# 计数
words = ["apple", "banana", "apple"]
print(Counter(words).most_common(1))   # [('apple', 2)]

# 默认字典
dd = defaultdict(int)
dd["x"] += 1
print(dd["x"])                         # 1

# 命名元组
Point = namedtuple("Point", "x y")
p = Point(10, 20)
print(p.x, p.y)                        # 10 20

9. itertools — 迭代器工具

用途:无限序列、排列组合、高效循环,减少显式循环。

代码语言:javascript
复制
importitertoolsasit

cnt = it.count(start=10, step=2)
print(next(cnt), next(cnt))            # 10 12

print(list(it.permutations("abc", 2)))
# [('a', 'b'), ('a', 'c'), ('b', 'a'), ('b', 'c'), ('c', 'a'), ('c', 'b')]

10. logging — 日志记录

用途:以分级、格式化方式记录程序运行信息,方便调试与运维。

代码语言:javascript
复制
importlogging

logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s - %(levelname)s - %(message)s"
)
logging.info("Service started")
logging.error("Disk full!")
代码语言:javascript
复制
2025-08-19 14:23:45,123 - INFO - Service started
2025-08-19 14:23:45,124 - ERROR - Disk full!

11. threading — 多线程

用途:单进程内并发执行 I/O 密集型任务,提高响应速度。

代码语言:javascript
复制
importthreading, time

defjob(n):
    print(f"Thread {n} start")
    time.sleep(0.5)
    print(f"Thread {n} end")

threads = [threading.Thread(target=job, args=(i,)) foriinrange(3)]
[t.start() fortinthreads]
[t.join() fortinthreads]
print("All threads done")
代码语言:javascript
复制
Thread 0 start
Thread 1 start
Thread 2 start
Thread 0 end
Thread 1 end
Thread 2 end
All threads done

12. multiprocessing — 多进程

用途:利用多核 CPU并行计算,适合 CPU 密集型任务

代码语言:javascript
复制
frommultiprocessingimportProcess

defsquare(x):
    print(f"{x}² = {x * x}")

if__name__ == "__main__":
    ps = [Process(target=square, args=(i,)) foriinrange(3)]
    [p.start() forpinps]
    [p.join() forpinps]
代码语言:javascript
复制
0² = 0
1² = 1
2² = 4

13. urllib — URL 处理

用途:下载网络资源、构造查询串、解析网址。

代码语言:javascript
复制
fromurllib.requestimporturlopen
fromurllib.parseimporturlencode, urlparse

# 获取首页前 100 字节
withurlopen("https://www.python.org") asresp:
    print(resp.read(100))
# b'<!doctype html>\n<!--[if lt IE 7]>   <html class="no-js ie6 lt-ie7 lt-ie8 lt-ie9">   <![endif]-->\n<!--[if '

# 解析 URL
parts = urlparse("https://docs.python.org/3/")
print(parts.netloc)                   # docs.python.org

# 构造查询串
print(urlencode({"q": "urllib", "page": 2}))   # q=urllib&page=2

14. shutil — 高级文件操作

用途:复制、移动、删除整个目录树,跨平台备份利器。

代码语言:javascript
复制
importshutil, tempfile, os

# 临时目录演示
withtempfile.TemporaryDirectory() astmp:
    src = os.path.join(tmp, "src.txt")
    dst = os.path.join(tmp, "dst.txt")
    withopen(src, "w") asf:
        f.write("hello")
    shutil.copy(src, dst)
    print(os.listdir(tmp))            # ['src.txt', 'dst.txt']

15. csv — CSV 文件处理

用途读写逗号分隔文件,无缝对接 Excel 与数据库。

代码语言:javascript
复制
importcsv, tempfile, os

withtempfile.NamedTemporaryFile(mode="w+", newline="", delete=False) asf:
    writer = csv.writer(f)
    writer.writerow(["Name", "Age"])
    writer.writerows([["Alice", 25], ["Bob", 30]])
    f.seek(0)
    forrowincsv.reader(f):
        print(row)
    os.unlink(f.name)
代码语言:javascript
复制
['Name', 'Age']
['Alice', '25']
['Bob', '30']

16. time — 时间相关功能

用途:获取时间戳、睡眠暂停、字符串格式化。

代码语言:javascript
复制
importtime

print(time.time())                     # 1724060625.123456
print(time.strftime("%H:%M", time.localtime()))  # 14:23
time.sleep(0.2)
print("0.2 s later")
代码语言:javascript
复制
0.2 s later

17. functools — 高阶函数

用途函数装饰与增强,如缓存、偏函数、比较器。

代码语言:javascript
复制
fromfunctoolsimportlru_cache, partial

# 偏函数
power = lambdabase, exp: base**exp
square = partial(power, exp=2)
print(square(5))                       # 25

# 缓存
@lru_cache(maxsize=None)
deffib(n):
    returnnifn<2elsefib(n-1) +fib(n-2)

print(fib(10))                         # 55

18. glob — 文件路径匹配

用途通配符批量查找文件,支持递归。

代码语言:javascript
复制
importglob, tempfile, os

withtempfile.TemporaryDirectory() astmp:
    open(os.path.join(tmp, "a.py"), "w").close()
    open(os.path.join(tmp, "b.txt"), "w").close()
    py_files = glob.glob(os.path.join(tmp, "*.py"))
    print(py_files)                    # ['/tmp/.../a.py']

19. zipfile — ZIP 压缩文件

用途创建、查看、解压 ZIP 档案,无需外部工具。

代码语言:javascript
复制
importzipfile, tempfile, os

withtempfile.TemporaryDirectory() astmp:
    zip_path = os.path.join(tmp, "demo.zip")
    withzipfile.ZipFile(zip_path, "w") aszf:
        zf.writestr("hello.txt", "Hi")
    withzipfile.ZipFile(zip_path, "r") aszf:
        print(zf.namelist())          # ['hello.txt']
        zf.extractall(os.path.join(tmp, "out"))
        print(os.listdir(os.path.join(tmp, "out")))  # ['hello.txt']

20. argparse — 命令行参数解析

用途自动生成帮助信息的命令行接口,提升脚本可用性。

代码语言:javascript
复制
importargparse

parser = argparse.ArgumentParser(description="Sum or max some integers.")
parser.add_argument("nums", type=int, nargs="+", help="integers to process")
parser.add_argument("--sum", dest="op", action="store_const",
                    const=sum, default=max, help="sum the integers")

args = parser.parse_args(["1", "2", "3", "--sum"])
print(args.op(args.nums))              # 6

Python的标准库模块涵盖了广泛的功能领域,从文件操作到网络请求,从数据处理到并发编程。掌握这些模块的使用可以大大提高开发效率和代码质量。

“无他,惟手熟尔”!有需要的用起来。

如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!😊

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Nicholas与Pypi 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. re — 正则表达式
  • 2. json — JSON 数据编解码
  • 3. os — 操作系统交互
  • 4. sys — 解释器相关功能
  • 5. datetime — 日期与时间
  • 6. math — 数学运算
  • 7. random — 随机数生成
  • 8. collections — 高级容器
  • 9. itertools — 迭代器工具
  • 10. logging — 日志记录
  • 11. threading — 多线程
  • 12. multiprocessing — 多进程
  • 13. urllib — URL 处理
  • 14. shutil — 高级文件操作
  • 15. csv — CSV 文件处理
  • 16. time — 时间相关功能
  • 17. functools — 高阶函数
  • 18. glob — 文件路径匹配
  • 19. zipfile — ZIP 压缩文件
  • 20. argparse — 命令行参数解析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档