杰瑞科技汇

Python Windows命令行怎么用?

  1. 在 Windows 命令提示符或 PowerShell 中运行 Python 脚本或交互式解释器。
  2. 在代码中执行系统命令(即调用 CMD 或 PowerShell)。

我会从最基础的部分开始,逐步深入,并包含大量实用示例。


第一部分:在 Windows 命令行中使用 Python

这是最常见的用法,即在终端里与 Python 交互或执行脚本。

环境准备:确认 Python 已正确安装

在开始之前,请确保你的电脑上已经安装了 Python,并且系统环境变量 PATH 中包含了 Python 的路径。

如何检查?

打开一个新的 命令提示符PowerShell 窗口(推荐使用 PowerShell,功能更强大),输入以下命令:

python --version

或者,如果你的 Python 是通过官方安装器安装的,也可能需要用 python3

python3 --version

如果看到类似 Python 3.11.4 的输出,说明一切正常,如果提示 'python' 不是内部或外部命令...,说明 Python 的安装路径没有被添加到系统的 PATH 环境变量中,你需要重新运行 Python 安装程序,并勾选 "Add Python to PATH" 选项。

启动 Python 交互式解释器

在命令行中输入 pythonpython3,然后按回车,你会进入 Python 交互模式。

C:\Users\YourName> python
Python 3.11.4 (main, Jun  7 2025, 12:45:35) [MSC v.1934 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

这个 >>> 提示符表示 Python 正在等待你的输入,你可以在这里直接输入 Python 代码并立即看到结果。

示例:

>>> print("Hello, World!")
Hello, World!
>>> 2 + 3
5
>>> my_name = "Alice"
>>> print(f"Hello, {my_name}!")
Hello, Alice!
>>> # 输入 exit() 或按 Ctrl+Z 再按回车 来退出
>>> exit()
C:\Users\YourName>

运行 Python 脚本文件

假设你有一个名为 hello.py 的文件,内容如下:

# hello.py
import time
import datetime
print("脚本开始运行...")
print("当前时间是:", datetime.datetime.now())
time.sleep(2) # 暂停2秒
print("脚本运行结束。")

如何运行它?

在命令行中,使用 python 命令,后面跟上你的文件路径。

C:\Users\YourName> python C:\path\to\your\script\hello.py

更简单的方式(如果脚本在当前目录):

  1. 在命令行中使用 cd 命令切换到 hello.py 文件所在的目录。

    C:\Users\YourName> cd C:\path\to\your\script
  2. 然后直接运行文件名。

    C:\path\to\your\script> python hello.py

输出结果:

脚本开始运行...
当前时间是: 2025-10-27 10:30:00.123456
脚本运行结束。

命令行参数

你的 Python 脚本可以接收来自命令行的参数,这通过 sys 模块来实现。

修改 hello.py

# hello.py
import sys
# sys.argv 是一个列表,包含了所有的命令行参数
# sys.argv[0] 是脚本本身的名称
# sys.argv[1] 是第一个参数,以此类推
if len(sys.argv) > 1:
    name = sys.argv[1]
    print(f"Hello, {name}!")
else:
    print("Hello, World!")
    print("用法: python hello.py [你的名字]")

运行方式:

# 不带参数运行
C:\path\to\your\script> python hello.py
Hello, World!
用法: python hello.py [你的名字]
# 带参数运行
C:\path\to\your\script> python hello.py Alice
Hello, Alice!

常用命令行技巧

  • 自动补全: 在 PowerShell 中,按 Tab 键可以自动补全文件名或目录名。
  • 清屏: 在 CMD 中输入 cls,在 PowerShell 中输入 clear 或其快捷键 Ctrl+L
  • 历史命令: 使用上下箭头键 和 可以浏览之前输入过的命令。
  • 多命令执行: 在同一行用 & 连接多个命令。
    # 先运行脚本,然后列出当前目录的文件
    C:\path\to\your\script> python hello.py & dir

第二部分:在 Python 代码中执行 Windows 命令

有时,你需要让你的 Python 程序去调用操作系统的命令,比如执行 dircopy,或者运行一个批处理文件 (.bat)。

Python 提供了多种方式来实现,最常用的是 subprocess 模块。

使用 os.system() (简单但已过时)

这是最简单直接的方法,但不推荐用于新项目,因为它无法获取命令的输出,且安全性较差。

import os
# 执行 "dir" 命令,结果会直接打印到控制台
# 返回值是命令执行后的退出码 (0 表示成功)
return_code = os.system('dir')
print(f"命令执行完毕,退出码: {return_code}")

使用 subprocess 模块 (强烈推荐)

subprocess 是现代、灵活且强大的选择,可以让你更好地控制子进程。

subprocess.run() (推荐用法)

这是 Python 3.5+ 引入的推荐方法,简单易用。

示例 1:执行一个命令并获取其输出

import subprocess
try:
    # 执行 "dir" 命令
    # text=True 会将输出解码为字符串
    # capture_output=True 会捕获标准输出和标准错误
    result = subprocess.run(['dir'], capture_output=True, text=True, shell=True, check=True)
    # 打印命令的标准输出
    print("命令执行成功!")
    print("标准输出:")
    print(result.stdout)
except subprocess.CalledProcessError as e:
    # 如果命令执行失败 (返回非零退出码)
    print(f"命令执行失败,错误码: {e.returncode}")
    print("标准错误:")
    print(e.stderr)

注意

  • shell=True: 在 Windows 上,如果命令是内置的(如 dir, copy),通常需要 shell=True,如果你的命令是一个外部程序的完整路径(如 C:\Windows\System32\notepad.exe),可以不用 shell=True
  • check=True: 如果设置为 True,当命令返回非零退出码(即执行失败)时,会自动抛出 CalledProcessError 异常。
  • capture_output=True: 捕获输出,你也可以分别使用 stdout=subprocess.PIPEstderr=subprocess.PIPE

示例 2:执行带参数的命令

import subprocess
# 创建一个新文件 "test.txt" 并写入内容
# 注意 /c 表示执行完命令后关闭 CMD 窗口
command = 'echo Hello from Python > test.txt'
subprocess.run(command, shell=True, check=True)
print("文件已创建。")
# 使用 "type" 命令来查看文件内容
command_to_read = 'type test.txt'
result = subprocess.run(command_to_read, shell=True, capture_output=True, text=True, check=True)
print("\n文件内容:")
print(result.stdout)
# 清理
subprocess.run('del test.txt', shell=True)

进阶:在 Python 中打开 CMD 或 PowerShell 窗口并执行命令

如果你想在 Python 代码中弹出一个新的 CMD 窗口来执行命令,可以使用 start 命令。

import subprocess
import time
# 使用 'start' 命令会弹出一个新的 CMD 窗口
# 'cmd /k' 表示执行完命令后窗口保持打开
# 'ping -n 5 127.0.0.1' 是一个会执行5秒的命令
command = 'start cmd /k ping -n 5 127.0.0.1'
print("即将打开一个新的 CMD 窗口并执行 ping 命令...")
subprocess.run(command, shell=True)
print("主程序继续执行。")
time.sleep(2)
print("主程序结束。")

总结与对比

功能/场景 推荐方法 备注
在终端运行 Python 脚本 python your_script.py 基础必备技能。
在终端进入交互模式 python 用于快速测试代码片段。
Python 接收命令行参数 import sys; print(sys.argv) 用于制作可配置的脚本工具。
在 Python 中执行简单命令 os.system() 简单,但功能有限,不推荐新项目使用。
在 Python 中执行命令并获取输出/状态 subprocess.run() 强烈推荐,现代、灵活、功能强大。
在 Python 中弹出新窗口执行命令 subprocess.run('start cmd /k ...', shell=True) 用于需要用户交互或长时间运行的后台任务。

希望这份详细的指南能帮助你熟练地在 Windows 环境下使用 Python 命令行!

分享:
扫描分享到社交APP
上一篇
下一篇