第八章:模块与包
导入模块
# 导入整个模块
import math
print(math.sqrt(16))
# 导入特定函数
from math import sqrt, pi
print(sqrt(16))
print(pi)
# 导入并重命名
import numpy as np
from math import sqrt as square_root
# 导入所有(不推荐)
from math import *
创建模块
# my_module.py
def greet(name):
return f"Hello, {name}!"
PI = 3.14159
# 使用模块
import my_module
print(my_module.greet("Alice"))
print(my_module.PI)
包的结构
my_package/
├── __init__.py
├── module1.py
├── module2.py
└── subpackage/
├── __init__.py
└── module3.py
# __init__.py
from .module1 import func1
from .module2 import func2
# 使用包
from my_package import func1, func2
from my_package.subpackage import module3
常用标准库
# os - 操作系统接口
import os
os.getcwd() # 当前目录
os.listdir() # 列出文件
os.makedirs('dir') # 创建目录
# sys - 系统参数
import sys
sys.argv # 命令行参数
sys.path # 模块搜索路径
# datetime - 日期时间
from datetime import datetime, timedelta
now = datetime.now()
tomorrow = now + timedelta(days=1)
# json - JSON 处理
import json
data = json.dumps({'name': 'Alice'})
obj = json.loads(data)
# re - 正则表达式
import re
pattern = r'\d+'
matches = re.findall(pattern, 'abc123def456')
# collections - 集合工具
from collections import Counter, defaultdict
counter = Counter(['a', 'b', 'a', 'c', 'a'])
第三方库管理
# 安装
pip install requests
pip install numpy==1.21.0
# 卸载
pip uninstall requests
# 列出已安装
pip list
pip freeze > requirements.txt
# 从文件安装
pip install -r requirements.txt