示例 1: 基础使用¶
本示例演示如何基础使用本项目完成一个简单的任务。
概述¶
本示例将展示: 1. 如何加载和配置项目 2. 如何执行基本操作 3. 如何查看和验证结果
前提条件¶
确保您已经: - 完成 环境安装 - 安装所有依赖 - 克隆项目代码
示例代码¶
完整示例脚本¶
创建文件 run_example1.py:
#!/usr/bin/env python3
"""
示例 1: 基础使用
"""
import os
import sys
import logging
from pathlib import Path
# 添加项目根目录到路径
project_root = Path(__file__).parent.parent.parent
sys.path.insert(0, str(project_root))
from your_project import Project
from your_project.utils import setup_logging
def setup_environment():
"""设置环境"""
# 配置日志
setup_logging(level=logging.INFO)
# 创建必要目录
directories = ["data/input", "data/output", "logs"]
for directory in directories:
Path(directory).mkdir(parents=True, exist_ok=True)
print("环境设置完成")
def create_sample_data():
"""创建示例数据"""
import json
import csv
# 创建 JSON 数据
json_data = {
"name": "示例项目",
"version": "1.0.0",
"parameters": {
"batch_size": 32,
"learning_rate": 0.001,
"epochs": 10
},
"features": ["feature1", "feature2", "feature3"]
}
with open("data/input/sample.json", "w", encoding="utf-8") as f:
json.dump(json_data, f, indent=2, ensure_ascii=False)
# 创建 CSV 数据
csv_data = [
["id", "name", "value", "category"],
[1, "item1", 10.5, "A"],
[2, "item2", 20.3, "B"],
[3, "item3", 15.7, "A"],
[4, "item4", 25.1, "C"],
[5, "item5", 18.9, "B"]
]
with open("data/input/sample.csv", "w", encoding="utf-8", newline="") as f:
writer = csv.writer(f)
writer.writerows(csv_data)
print("示例数据创建完成")
def run_project_operations():
"""运行项目操作"""
# 初始化项目
project = Project(
config_path="config.yaml",
log_level="INFO"
)
# 加载配置
project.load_config()
# 处理数据
print("开始处理数据...")
# 示例操作 1: 加载数据
data = project.load_data("data/input/sample.csv")
print(f"加载数据: {len(data)} 条记录")
# 示例操作 2: 数据转换
transformed_data = project.transform_data(data)
print(f"数据转换完成")
# 示例操作 3: 执行分析
analysis_result = project.analyze(transformed_data)
print(f"分析完成: {analysis_result['summary']}")
# 示例操作 4: 保存结果
project.save_results(
analysis_result,
output_path="data/output/results.json"
)
return analysis_result
def visualize_results(result):
"""可视化结果"""
try:
import matplotlib.pyplot as plt
import pandas as pd
# 创建可视化
fig, axes = plt.subplots(2, 2, figsize=(12, 10))
# 图表 1: 条形图
if 'metrics' in result:
metrics = result['metrics']
axes[0, 0].bar(range(len(metrics)), list(metrics.values()))
axes[0, 0].set_title("性能指标")
axes[0, 0].set_xticks(range(len(metrics)))
axes[0, 0].set_xticklabels(list(metrics.keys()), rotation=45)
# 图表 2: 饼图
if 'distribution' in result:
distribution = result['distribution']
axes[0, 1].pie(
list(distribution.values()),
labels=list(distribution.keys()),
autopct='%1.1f%%'
)
axes[0, 1].set_title("数据分布")
# 图表 3: 折线图
if 'history' in result:
history = result['history']
axes[1, 0].plot(history)
axes[1, 0].set_title("训练历史")
axes[1, 0].set_xlabel("迭代")
axes[1, 0].set_ylabel("损失")
# 图表 4: 散点图
if 'predictions' in result:
predictions = result['predictions']
if len(predictions) > 0 and isinstance(predictions[0], dict):
x = [p.get('x', i) for i, p in enumerate(predictions)]
y = [p.get('y', 0) for p in predictions]
axes[1, 1].scatter(x, y)
axes[1, 1].set_title("预测结果")
axes[1, 1].set_xlabel("特征")
axes[1, 1].set_ylabel("预测值")
plt.tight_layout()
plt.savefig("data/output/visualization.png", dpi=150)
plt.close()
print("可视化结果已保存: data/output/visualization.png")
except ImportError:
print("Matplotlib 未安装,跳过可视化")
print("安装命令: pip install matplotlib")
def generate_report(result):
"""生成报告"""
report = f"""
# 示例运行报告
## 执行摘要
- 执行时间: {result.get('timestamp', '未知')}
- 状态: {result.get('status', '未知')}
- 处理记录数: {result.get('processed_count', 0)}
## 性能指标
"""
if 'metrics' in result:
for key, value in result['metrics'].items():
report += f"- {key}: {value:.4f}\n"
report += f"""
## 详细结果
{result.get('details', '无')}
## 下一步建议
1. 查看输出文件: data/output/results.json
2. 查看可视化: data/output/visualization.png
3. 尝试修改参数重新运行
"""
with open("data/output/report.md", "w", encoding="utf-8") as f:
f.write(report)
print("报告已生成: data/output/report.md")
def main():
"""主函数"""
print("=" * 60)
print("示例 1: 基础使用")
print("=" * 60)
try:
# 步骤 1: 环境设置
setup_environment()
# 步骤 2: 创建示例数据
create_sample_data()
# 步骤 3: 运行项目操作
result = run_project_operations()
# 步骤 4: 可视化结果
visualize_results(result)
# 步骤 5: 生成报告
generate_report(result)
print("=" * 60)
print("示例运行完成!")
print("输出文件:")
print(" - data/output/results.json")
print(" - data/output/visualization.png")
print(" - data/output/report.md")
print("=" * 60)
except Exception as e:
print(f"运行示例时出错: {e}")
import traceback
traceback.print_exc()
sys.exit(1)
if __name__ == "__main__":
main()
运行示例¶
方法一: 直接运行¶
python run_example1.py
方法二: 使用提供的脚本¶
如果项目包含示例脚本:
python examples/example1.py
预期输出¶
运行成功后,您应该看到:
============================================================
示例 1: 基础使用
============================================================
环境设置完成
示例数据创建完成
开始处理数据...
加载数据: 5 条记录
数据转换完成
分析完成: 分析成功,包含5个指标
可视化结果已保存: data/output/visualization.png
报告已生成: data/output/report.md
============================================================
示例运行完成!
输出文件:
- data/output/results.json
- data/output/visualization.png
- data/output/report.md
============================================================
文件结构¶
运行示例后,目录结构如下:
data/
├── input/
│ ├── sample.json
│ └── sample.csv
└── output/
├── results.json
├── visualization.png
└── report.md
logs/
└── app.log
自定义示例¶
您可以修改以下部分来自定义示例:
- 修改数据: 编辑
data/input/sample.csv或sample.json - 调整参数: 修改
config.yaml中的配置 - 扩展功能: 在
run_project_operations()函数中添加更多操作
故障排除¶
常见问题¶
- 导入错误: 确保项目根目录在 Python 路径中
- 文件不存在: 检查
data/input/目录是否存在 - 权限问题: 确保对输出目录有写入权限
调试模式¶
要获取更详细的输出,启用调试日志:
python run_example1.py --log-level DEBUG