★ 📝 预计阅读时间:20 分钟 | 难度:⭐⭐☆☆☆
”
🎯 学习目标
完成本课后,你将能够:
📋 课前回顾
在前 4 期中,我们学习了:
之前我们都是在 VS Code 中运行代码,今天学习如何在命令行执行 Python 脚本!
📚 课程内容
1. 为什么使用命令行?
1.1 命令行的优势
VS Code 中运行:- ✅ 适合开发和调试- ✅ 有代码提示和高亮- ❌ 需要打开编辑器命令行运行:- ✅ 快速执行- ✅ 可以自动化- ✅ 适合部署和生产- ✅ 可以传递参数
1.2 应用场景
# 场景 1:定时任务# 每天早上 8 点自动运行数据备份脚本# 场景 2:批处理# 一次性处理 100 个 Excel 文件# 场景 3:自动化工具# 输入参数,自动完成特定任务# 场景 4:服务器部署# 在服务器上运行 Python 程序
2. 准备第一个脚本
2.1 创建脚本文件
# 文件名:hello_script.py# 第 1 行:注释(可选)# 作者:AI 机器人智能部落# 第 2 行:代码print("Hello, 命令行!")print("这是我在命令行运行的第一个脚本")
2.2 保存脚本
建议的目录结构:python-learning/ # 学习文件夹├── lesson-01/ # 第 01 期├── lesson-02/ # 第 02 期├── lesson-03/ # 第 03 期├── lesson-04/ # 第 04 期├── lesson-05/ # 第 05 期│ └── hello_script.py # 本课脚本└── scripts/ # 脚本文件夹 └── my_script.py # 你的脚本
3. 在命令行运行脚本
3.1 Windows 系统
步骤 1:打开命令行
方法 1:按 Win + R,输入 cmd,回车方法 2:按 Win + S,搜索"命令提示符"方法 3:在文件夹中按 Shift + 右键,选择"在此处打开 PowerShell 窗口"
步骤 2:进入脚本目录
# 假设脚本在桌面的 python-learning 文件夹cd Desktop\python-learning\lesson-05# 或者使用完整路径cd C:\Users\你的用户名\Desktop\python-learning\lesson-05
步骤 3:运行脚本
# 方式 1:使用 python 命令python hello_script.py# 方式 2:使用 py 命令(Windows 特有)py hello_script.py# 方式 3:指定 Python 版本python3 hello_script.py
输出结果:
Hello, 命令行!这是我在命令行运行的第一个脚本
3.2 Mac/Linux 系统
步骤 1:打开终端
方法 1:按 Cmd + Space,搜索"终端"方法 2:在应用程序 → 实用工具 → 终端
步骤 2:进入脚本目录
# 假设脚本在桌面的 python-learning 文件夹cd Desktop/python-learning/lesson-05# 或者使用完整路径cd /Users/你的用户名/Desktop/python-learning/lesson-05
步骤 3:运行脚本
# 运行脚本python3 hello_script.py# 或者(如果 python 指向 Python 3)python hello_script.py
4. 常见问题解决
4.1 'python' 不是内部命令
问题:
'python' 不是内部或外部命令,也不是可运行的程序
解决方案:
Windows:
# 方法 1:使用 py 命令(Python 3 自带)py hello_script.py# 方法 2:使用完整路径"C:\Python312\python.exe" hello_script.py# 方法 3:重新安装 Python,勾选"Add Python to PATH"
Mac/Linux:
# 使用 python3 命令python3 hello_script.py# 或者创建别名alias python=python3
4.2 找不到脚本文件
问题:
python: can't open file 'hello_script.py': [Errno 2] No such file or directory
解决方案:
# 1. 确认当前目录# Windowsdir# Mac/Linuxls# 2. 确认脚本在當前目录# 如果不在,使用 cd 进入正确目录# 3. 使用完整路径python C:\完整路径\hello_script.pypython /完整路径/hello_script.py
4.3 编码问题
问题:
SyntaxError: Non-UTF-8 code
解决方案:
# 在脚本第一行添加编码声明# -*- coding: utf-8 -*-print("中文内容")
5. 命令行参数
5.1 使用 sys.argv
# 文件名:greet.pyimport sys# sys.argv 是一个列表# argv[0] 是脚本名# argv[1:] 是传递的参数print(f"脚本名:{sys.argv[0]}")print(f"参数数量:{len(sys.argv) - 1}")print(f"所有参数:{sys.argv}")# 如果有参数if len(sys.argv) > 1: name = sys.argv[1] print(f"你好,{name}!")else: print("请提供你的名字作为参数")
运行方式:
# 不带参数python greet.py# 输出:# 脚本名:greet.py# 参数数量:0# 所有参数:['greet.py']# 请提供你的名字作为参数# 带一个参数python greet.py 国奉# 输出:# 脚本名:greet.py# 参数数量:1# 所有参数:['greet.py', '国奉']# 你好,国奉!# 带多个参数python greet.py 国奉 日不落# 输出:# 脚本名:greet.py# 参数数量:2# 所有参数:['greet.py', '国奉', '日不落']# 你好,国奉!
5.2 实战:简易计算器
# 文件名:calc.pyimport sys# 检查参数数量if len(sys.argv) != 4: print("用法:python calc.py <数字 1> <运算符> <数字 2>") print("运算符:+ - * /") sys.exit(1)# 获取参数num1 = float(sys.argv[1])operator = sys.argv[2]num2 = float(sys.argv[3])# 计算if operator == "+": result = num1 + num2elif operator == "-": result = num1 - num2elif operator == "*": result = num1 * num2elif operator == "/":if num2 == 0: print("错误:除数不能为 0") sys.exit(1) result = num1 / num2else: print(f"错误:未知的运算符 '{operator}'") sys.exit(1)# 输出结果print(f"{num1}{operator}{num2} = {result}")
运行方式:
python calc.py 10 + 5# 输出:10.0 + 5.0 = 15.0python calc.py 100 / 4# 输出:100.0 / 4.0 = 25.0python calc.py 10 / 0# 输出:错误:除数不能为 0
6. 脚本的组织和管理
6.1 项目结构
python-learning/├── lesson-01/ # 第 01 期代码│ └── hello.py├── lesson-02/ # 第 02 期代码│ └── examples.py├── lesson-03/ # 第 03 期代码│ └── examples.py├── lesson-04/ # 第 04 期代码│ └── examples.py├── lesson-05/ # 第 05 期代码│ ├── hello_script.py│ ├── greet.py│ └── calc.py├── projects/ # 综合项目│ └── my_project/├── scripts/ # 实用脚本│ ├── backup.py│ └── process_data.py└── README.md # 项目说明
6.2 脚本命名规范
✅ 推荐:- 使用小写字母- 单词之间用下划线- 以 .py 结尾- 见名知意示例:- hello_script.py- process_data.py- backup_files.py- calculate_average.py❌ 不推荐:- Hello.py(大写开头)- myScript.py(驼峰命名)- test.py(太通用)- 123.py(数字开头)
6.3 添加脚本说明
# -*- coding: utf-8 -*-"""脚本名称:数据处理工具作者:AI 机器人智能部落创建日期:2026-05-06功能描述:处理 Excel 数据并生成报告使用方法:python process_data.py <输入文件> <输出文件>"""# 代码内容...
7. 实战案例:个人信息工具
# -*- coding: utf-8 -*-"""脚本名称:个人信息工具作者:AI 机器人智能部落功能:根据命令行参数显示个人信息"""import sysdefshow_help():"""显示帮助信息""" print("=" * 50) print("个人信息工具 - 使用帮助") print("=" * 50) print("用法:python info.py [选项]") print() print("选项:") print(" --name 显示姓名") print(" --age 显示年龄") print(" --city 显示城市") print(" --all 显示全部信息") print(" --help 显示此帮助信息") print("=" * 50)defshow_info(option):"""根据选项显示信息""" info = {"name": "国奉","age": "5","city": "日不落","org": "AI 机器人智能部落" }if option == "--name": print(f"姓名:{info['name']}")elif option == "--age": print(f"年龄:{info['age']}")elif option == "--city": print(f"城市:{info['city']}")elif option == "--all": print("=" * 30) print("个人信息") print("=" * 30) print(f"姓名:{info['name']}") print(f"年龄:{info['age']}") print(f"城市:{info['city']}") print(f"机构:{info['org']}") print("=" * 30)else: print(f"错误:未知选项 '{option}'") show_help()# 主程序if __name__ == "__main__":# 没有参数if len(sys.argv) == 1: print("错误:请提供选项") show_help() sys.exit(1)# 获取参数 option = sys.argv[1]# 处理参数if option == "--help": show_help()else: show_info(option)
运行方式:
python info.py --help# 显示帮助信息python info.py --name# 输出:姓名:国奉python info.py --all# 显示全部信息
✅ 环境检查清单
完成以下练习,确保掌握本课内容:
❓ 常见问题解答
Q1:python 和 python3 有什么区别?A:在某些系统上,python 指向 Python 2,python3 指向 Python 3。Windows 上使用 py 命令最安全。
Q2:如何在脚本中使用中文?A:在文件第一行添加 # -*- coding: utf-8 -*-。
Q3:sys.argv[0] 是什么?A:脚本文件名本身。
Q4:如何退出脚本?A:使用 sys.exit(0) 正常退出,sys.exit(1) 错误退出。
Q5:命令行参数只能是字符串吗?A:是的,需要用 int() 或 float() 转换。
📝 课后练习
基础题
运行脚本:创建 hello_script.py 并在命令行运行
使用参数:运行 greet.py,传入你的名字作为参数
挑战题
改进计算器:为 calc.py 添加幂运算(**)和取余(%)功能
制作天气工具:创建一个脚本,根据城市名输出天气信息(可以用字典模拟)
思考题
提示:大胆尝试,运行代码验证你的答案!
📌 下期预告
第 06 期:《数字 Number》
敬请期待!
🔗 本期资源
- [本期代码仓库](https://github.com/AI 机器人智能部落/python-tutorial/tree/main/lesson-05)
- [第 04 期回顾](https://github.com/AI 机器人智能部落/python-tutorial/tree/main/lesson-04)