本文目录导读:

我来介绍Python模块的几种导入和使用方法,从简单到复杂。
基本导入方式
标准库模块导入
# 导入整个模块 import math print(math.sqrt(16)) # 4.0 print(math.pi) # 3.14159... # 导入特定函数 from math import sqrt, pi print(sqrt(25)) # 5.0 print(pi) # 3.14159... # 导入并重命名 import datetime as dt now = dt.datetime.now() print(now) # 导入所有内容(不推荐) from math import * print(sin(0)) # 0.0
自定义模块
创建模块文件 mymodule.py
# mymodule.py
def greet(name):
return f"Hello, {name}!"
PI = 3.14159
class Calculator:
def add(self, a, b):
return a + b
导入自定义模块
# main.py
import mymodule
# 使用函数
print(mymodule.greet("Alice")) # Hello, Alice!
# 使用变量
print(mymodule.PI) # 3.14159
# 使用类
calc = mymodule.Calculator()
print(calc.add(5, 3)) # 8
包(Package)导入
创建包结构
my_package/
__init__.py
module_a.py
sub_package/
__init__.py
module_b.py
导入包中的模块
# 直接导入模块 import my_package.module_a my_package.module_a.func_a() # 从包中导入 from my_package import module_a module_a.func_a() # 导入子包中的模块 from my_package.sub_package import module_b module_b.func_b()
实际案例
案例1:文件处理
# 使用os和pathlib模块
import os
from pathlib import Path
# 获取当前目录
current_dir = os.getcwd()
print(f"当前目录: {current_dir}")
# 使用pathlib创建路径
data_path = Path("data") / "users.json"
print(f"数据文件路径: {data_path}")
# 检查文件是否存在
if data_path.exists():
print("文件存在")
案例2:数据处理
# 假设有自定义模块 data_utils.py
# data_utils.py
def load_data(filename):
"""加载数据文件"""
with open(filename, 'r') as f:
return f.readlines()
def process_data(data):
"""处理数据"""
return [line.strip() for line in data]
# 在另一个文件中使用
import data_utils
data = data_utils.load_data("info.txt")
processed = data_utils.process_data(data)
print(processed)
有条件导入
# 根据条件导入不同模块
try:
import numpy as np
print("NumPy可用,版本:", np.__version__)
except ImportError:
print("NumPy未安装")
# 使用替代方案
# Python版本判断导入
import sys
if sys.version_info >= (3, 10):
from collections import Counter
else:
print("请升级Python版本")
最佳实践
# 推荐的导入顺序 # 1. Python标准库 import os import sys import json # 2. 第三方库 import requests import pandas as pd # 3. 自定义模块 from mypackage import config from mypackage.utils import helper # 避免循环导入 # 如果模块A导入B,B又导入A,会导致错误
检查模块位置
import pandas # 查看模块文件位置 print(pandas.__file__) # 查看模块所有属性 print(dir(pandas)) # 查看模块文档 help(pandas.DataFrame)
这涵盖了Python模块导入的主要用法,选择哪种方式取决于你的具体需求和代码组织方式。