温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何用python做命令控制

发布时间:2026-11-04 18:35:28 来源:亿速云 阅读:94 作者:小樊 栏目:编程语言

在 Python 里做“命令控制”通常有以下几种常见场景,我按从简单到专业给你讲,并配上可直接运行的示例。


一、最基础:用 input() 做交互式命令

适合:简单脚本、学习、小工具

while True:
    cmd = input(">>> ").strip()
    if cmd == "exit":
        print("退出程序")
        break
    elif cmd == "hello":
        print("你好!")
    else:
        print("未知命令:", cmd)

✅ 特点

  • 简单直观
  • 不支持参数、自动补全、帮助信息

二、用 sys.argv 做命令行参数(非交互)

适合:一次性命令工具

import sys

args = sys.argv
print("命令:", args[0])
print("参数:", args[1:])

运行:

python test.py start --force

三、推荐方式:用 argparse(标准库)

适合:正式 CLI 工具

import argparse

parser = argparse.ArgumentParser(description="示例命令工具")
parser.add_argument("action", choices=["start", "stop"])
parser.add_argument("--force", action="store_true")

args = parser.parse_args()

if args.action == "start":
    print("启动中", "(强制)" if args.force else "")

运行:

python cli.py start --force

✅ 优点

  • 自动帮助信息 -h
  • 参数校验

四、交互式命令框架:cmd 模块(系统自带)

适合:类 shell 的命令控制程序

import cmd

class MyShell(cmd.Cmd):
    prompt = "myshell> "

    def do_hello(self, arg):
        print("你好", arg)

    def do_exit(self, arg):
        return True

if __name__ == "__main__":
    MyShell().cmdloop()

运行后输入:

myshell> hello world
myshell> exit

✅ 自动支持:

  • help
  • ?
  • Tab 提示(部分环境)

五、专业 CLI:第三方库(推荐)

1️⃣ click(最流行)

import click

@click.command()
@click.argument("name")
@click.option("--count", default=1)
def hello(name, count):
    for _ in range(count):
        click.echo(f"Hello {name}")

if __name__ == "__main__":
    hello()

2️⃣ typer(基于类型提示,更现代)

import typer

app = typer.Typer()

@app.command()
def hello(name: str):
    print(f"Hello {name}")

if __name__ == "__main__":
    app()

六、远程 / 系统命令控制(进阶)

  • 控制本机命令:subprocess
import subprocess
subprocess.run(["ls", "-l"])
  • 远程控制:SSH / WebSocket / Socket
  • 权限控制:用户、token、白名单

七、你该选哪种?

需求 推荐
学习 / 小脚本 input
单次命令 argparse
类 shell 工具 cmd
正式 CLI click / typer
远程控制 socket + 协议

如果你能告诉我:

  • 是本地还是远程
  • 是人输入还是程序调用
  • 是否需要权限 / 安全

我可以直接帮你设计一套完整结构。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手