一种简洁的python指令处理脚本

基本代码

如果想增加功能,可以在功能区直接声明新的函数,然后改一下大纲和入口。

python3 复制代码
import re

# 大纲 

def print_help():
     print("""[help
     输入指令以执行。
     输入"."以退出。
     hello : 示例功能,输出"Hello World"
     in [str] [str] : 示例功能,接收两个字符串
     """)

# 功能区

def f1():
    print("Hello World")

def f2(s1, s2):
    print(f"收到字符串{s1}和{s2}")

#入口

while True:
    cmd = input("\n_ ")
    if cmd == ".":
        break
    elif cmd == "hello":
        f1()
    elif s := re.match(r"in (\S+) (\S+)", cmd):
        f2(s.group(1), s.group(2))
    else:
        print_help()

静态化

增加一个设计,可以在执行之前决定一定要执行哪些指令。

python 复制代码
import re

# 大纲 

def print_help():
     print("""[help]
     输入指令以执行。
     输入"."以退出。
     hello : 示例功能,输出"Hello World"
     in [str] [str] : 示例功能,接收两个字符串
     """)

# 功能区

def f1():
    print("Hello World")

def f2(s1, s2):
    print(f"收到字符串{s1}和{s2}")

#入口

def process(cmd):
    if cmd == ".":
        return False
    elif cmd == "hello":
        f1()
    elif s := re.match(r"in (\S+) (\S+)", cmd):
        f2(s.group(1), s.group(2))
    else:
        print_help()
    return True

def run_script():
    while True:
        cmd = input("_")
        if not process(cmd)
            break

# 静态测试

process("hello")

# 启用脚本

run_script()
相关推荐
apcipot_rain8 小时前
C++转Java日记(04)
java·开发语言·c++
特立独行的猫A8 小时前
我给女儿写了个打字练习:一边敲键盘,一边把小学英语单词记牢
java·后端·python
cpolar技术支持8 小时前
「我这边连不上你那个服务」—— 用清单驱动的 TCP 连通性只读看板,cpolar 让远端同事自己取证
python·内网穿透·tcp·cpolar·网络诊断
云和数据.ChenGuang9 小时前
LangGraph 异步 Node 的设计与写法实践
开发语言·人工智能·python·机器学习·php
天诰10 小时前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
benchmark_cc11 小时前
用 QuantDash 读取美股行情:AAPL.US 的运行前检查、排错顺序与数据校验清单
python·数据分析·pandas·量化交易·股票数据·quantdash
蜗牛一步步往上爬12 小时前
第十六章 C++语言在深度学习中的应用
开发语言·c++·深度学习
羲云网络14 小时前
GPT Image 2.6 接入指南:Flare、Sunburst 怎么选,编辑失败如何排查
人工智能·python·aigc·图像生成·acedatacloud
张张123y14 小时前
DSH 插件调试避坑:client.js 设置面板、热重载与高频报错排查表
开发语言·javascript·人工智能·开源·ecmascript·后端开发·ai agent
冻柠檬飞冰走茶17 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划