# Python脚本开发

## 规则（Rules）

# Python脚本开发规范

## 适用对象和范围

本规范适用于所有使用Python编写数据处理脚本、自动化脚本和数据分析工具的场景。

---

## 1. 缩进规范

**规则**：统一使用4个空格缩进，遵循PEP8规范。

**违反后果**：Python依赖缩进定义代码块，缩进不一致会导致语法错误。

---

## 2. 命名规范

**规则**：函数名和变量名使用snake_case，常量名使用SCREAMING_SNAKE_CASE。

- ✅ 正确：`def process_data():`、`user_name = '张三'`
- ❌ 错误：`def processData():`、`userName = '张三'`

**违反后果**：命名不符合PEP8规范。

---

## 3. 注释规范

**规则**：函数必须使用docstring格式注释。

```python
def process_data(file_path: str) -> dict:
    """处理数据文件
    
    Args:
        file_path: 文件路径
        
    Returns:
        处理后的数据字典
    """
```

**违反后果**：缺少docstring导致代码可读性差。

## 方法（Methods）

# Python脚本开发方法

## 前置条件

- [ ] 已明确输入数据格式
- [ ] 已了解处理逻辑和输出要求

## 流程概览

分析需求 → 初始化项目 → 编写脚本 → 验证结果

## 详细步骤

### 步骤1：分析需求
分析需求，明确输入数据格式、处理逻辑和输出要求。

### 步骤2：初始化项目
创建脚本目录结构。

### 步骤3：编写脚本
编写Python脚本实现功能逻辑。

## 技巧（Tips）

# Python脚本开发技巧

## 1. 使用argparse处理命令行参数

**适用场景**：脚本需要接收命令行参数时。

**示例**：
```python
import argparse

parser = argparse.ArgumentParser(description='数据处理脚本')
parser.add_argument('--input', required=True, help='输入文件路径')
parser.add_argument('--output', default='result.csv', help='输出文件路径')
parser.add_argument('--verbose', action='store_true', help='显示详细信息')
args = parser.parse_args()
```

**注意事项**：必填参数用 `required=True`，可选参数设置默认值。

---

## 2. 使用pandas处理结构化数据

**适用场景**：处理CSV、Excel等结构化数据时。

**示例**：
```python
import pandas as pd

# 读取数据
df = pd.read_csv('input.csv')

# 数据清洗
df = df.dropna()
df['date'] = pd.to_datetime(df['date'])

# 统计分析
result = df.groupby('category').agg({
    'amount': ['sum', 'mean', 'count']
})

# 输出结果
result.to_csv('output.csv')
```

**注意事项**：大数据集使用 `chunksize` 参数分批读取。

---

## 3. 常见问题速查

| 问题 | 原因 | 解决方案 |
|------|------|---------|
| 编码错误 | 文件编码不一致 | 指定 `encoding='utf-8'` |
| 内存不足 | 数据量过大 | 使用分块处理或迭代器 |
| 依赖缺失 | 未安装所需库 | 检查 `requirements.txt` |
