PythonMd.md 6.4 KB

Python脚本使用说明

本文档提供了在项目中使用Python脚本的基本指南,包括Python安装、设置PATH、调用、调试、单元测试和常用库的使用方法。

0. Python安装与环境配置

0.1 下载Python

  • Windows

    1. 复制以下 FTP 地址到浏览器/FTP 客户端(如 FileZilla、资源管理器): ftp://172.54.8.24/MesLib/ToolSoft/python-manager-26.0.msix

    2. 运行下载的安装程序

    3. 勾选"Add Python to PATH"选项

    4. 点击"Install Now"完成安装

0.2 设置PATH环境变量(如果安装时未勾选)

  • Windows

    1. 右键点击"此电脑" → "属性" → "高级系统设置" → "环境变量"
    2. 在"系统变量"中找到"Path",点击"编辑"
    3. 点击"新建",添加Python安装目录(例如:C:\Python39)和Scripts目录(例如:C:\Python39\Scripts
    4. 点击"确定"保存更改

0.3 验证安装

  1. 打开命令行终端

  2. 运行以下命令:

   python --version
   # 或
   python3 --version
  1. 如果显示Python版本号,则安装成功

0.4 升级pip

pip是Python的包管理工具,建议保持最新版本:

# Windows
python -m pip install --upgrade pip

1. 脚本调用

1.1 直接运行

# 在命令行中直接运行Python脚本
python script.py

# 或使用Python 3
python3 script.py

1.2 带参数运行

# 传递命令行参数
python script.py arg1 arg2

# 在脚本中获取参数
import sys
print(sys.argv[1])  # 获取第一个参数

1.3 作为模块导入

# 在其他Python文件中导入模块
import my_module
my_module.function()

# 或从模块中导入特定函数
from my_module import function
function()

2. 调试

2.1 使用print语句

print("调试信息:", variable)

2.2 使用pdb调试器

import pdb

# 在代码中设置断点
pdb.set_trace()

# 常用调试命令
# n: 执行下一行
# c: 继续执行直到下一个断点
# p: 打印变量值
# q: 退出调试

2.3 使用IDE调试

  • VS Code: 详细调试指南
    1. 安装Python扩展:在VS Code扩展市场搜索并安装"Python"扩展
    2. 打开项目文件夹:File > Open Folder
    3. 创建调试配置:
      • 点击左侧调试图标(或按Ctrl+Shift+D)
      • 点击"创建launch.json文件"
      • 选择"Python"环境
      • 选择"Python File"配置
    4. 设置断点:在代码行号左侧点击添加断点
    5. 开始调试:
      • 点击绿色开始按钮
      • 或按F5键
    6. 调试控制:
      • 继续(F5):执行到下一个断点
      • 单步跳过(F10):执行当前行,不进入函数
      • 单步进入(F11):执行当前行,进入函数
      • 单步跳出(Shift+F11):从当前函数跳出
    7. 查看变量:在调试面板中查看变量值
    8. 监视表达式:添加表达式以实时监视其值
    9. 控制台:在调试控制台中执行Python代码

3. 单元测试

3.1 使用unittest模块

import unittest

class TestMyFunction(unittest.TestCase):
    def test_function(self):
        result = my_function()
        self.assertEqual(result, expected_value)

if __name__ == '__main__':
    unittest.main()

3.2 运行测试

# 运行所有测试
python -m unittest test_module.py

# 运行特定测试类
python -m unittest test_module.TestMyFunction

# 运行特定测试方法
python -m unittest test_module.TestMyFunction.test_function

3.3 使用pytest

# 安装pytest
pip install pytest

# 运行测试
pytest test_module.py -v

4. 项目内常用库

4.1 标准库

  • os: 操作系统接口
  • sys: 系统相关参数和函数
  • json: JSON数据处理
  • datetime: 日期时间处理
  • re: 正则表达式
  • collections: 容器数据类型
  • logging: 日志记录

4.2 第三方库

  • requests: HTTP请求
  • pandas: 数据处理和分析
  • numpy: 数值计算
  • matplotlib: 数据可视化
  • scikit-learn: 机器学习
  • flask: Web应用框架
  • django: 高级Web框架

4.3 安装第三方库

# 安装单个库
pip install requests

# 安装多个库
pip install requests pandas numpy

# 从requirements.txt文件安装
pip install -r requirements.txt

5. 最佳实践

5.1 代码风格

  • 遵循PEP 8编码规范
  • 使用有意义的变量和函数名
  • 添加适当的注释

5.2 错误处理

try:
    # 可能出错的代码
    result = risky_operation()
except Exception as e:
    # 处理错误
    print(f"错误: {e}")
finally:
    # 无论是否出错都会执行的代码
    cleanup()

5.3 性能优化

  • 使用列表推导式代替循环
  • 避免在循环中进行IO操作
  • 使用生成器处理大文件
  • 适当使用缓存

6. 示例脚本

#!/usr/bin/env python3
"""
示例Python脚本
"""

import argparse
import logging

# 配置日志
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)

def main():
    """主函数"""
    parser = argparse.ArgumentParser(description='示例脚本')
    parser.add_argument('--input', type=str, required=True, help='输入文件路径')
    parser.add_argument('--output', type=str, default='output.txt', help='输出文件路径')
    args = parser.parse_args()

    logger.info(f"处理文件: {args.input}")

    try:
        with open(args.input, 'r', encoding='utf-8') as f:
            content = f.read()

        # 处理内容
        processed_content = content.upper()

        with open(args.output, 'w', encoding='utf-8') as f:
            f.write(processed_content)

        logger.info(f"处理完成,输出到: {args.output}")
    except Exception as e:
        logger.error(f"处理失败: {e}")

if __name__ == '__main__':
    main()

7. 测试示例

#!/usr/bin/env python3
"""
测试示例
"""

import unittest
from my_script import process_content

class TestProcessContent(unittest.TestCase):
    def test_process_content(self):
        """测试内容处理函数"""
        input_content = "hello world"
        expected_output = "HELLO WORLD"
        result = process_content(input_content)
        self.assertEqual(result, expected_output)

if __name__ == '__main__':
    unittest.main()

本说明文档提供了Python脚本使用的基本指南,可根据项目的具体需求进行调整和扩展。