You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现自定义脚本语言解释器通过CMD直接指定运行文件路径?

用argparse实现直接传入文件路径的自定义解释器

嘿,别担心,argparse其实完全能满足你的需求!它可不是只能处理带--的可选参数,原生就支持位置参数——也就是你想要的直接传入文件路径的用法,不用加任何前缀。

实现步骤很简单:

  • 首先创建argparse解析器,然后通过add_argument()添加一个不带--的参数,这个参数就是你的文件路径位置参数。
  • 解析参数后,直接获取这个路径值,就可以读取文件并执行你的解释逻辑了。

完整代码示例:

import argparse

def run_interpreter(file_path):
    # 这里替换成你的解释器核心逻辑
    print(f"Starting to execute script: {file_path}")
    with open(file_path, 'r') as f:
        content = f.read()
        # 比如你的解释器处理逻辑:parse(content)、execute(content)等
        print(f"Script loaded successfully, length: {len(content)} characters")

def main():
    # 创建解析器,添加描述信息
    parser = argparse.ArgumentParser(description='CustomLang - A basic script language interpreter')
    
    # 添加位置参数:file_path,这就是用户直接传入的文件路径
    parser.add_argument('file_path', help='Path to the .lang file you want to run')
    
    # 解析命令行参数
    args = parser.parse_args()
    
    # 调用解释器逻辑
    try:
        run_interpreter(args.file_path)
    except FileNotFoundError:
        print(f"Error: Could not find file at {args.file_path}")
    except Exception as e:
        print(f"Runtime error: {str(e)}")

if __name__ == '__main__':
    main()

怎么使用?

当你把这个脚本打包成可执行文件(比如customlang)后,直接在CMD里输入:

customlang /path/to/file/file.lang

argparse会自动把/path/to/file/file.lang解析到args.file_path中,完美符合你的需求!

额外扩展:支持多个文件

如果以后想支持一次性运行多个.lang文件,只需要修改参数的nargs属性:

parser.add_argument('file_paths', nargs='+', help='Paths to multiple .lang files to execute')

这样用户就能输入:

customlang file1.lang file2.lang /path/to/file3.lang

你可以通过args.file_paths拿到一个包含所有路径的列表,循环处理每个文件即可。

内容的提问来源于stack exchange,提问作者J-Cake

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:54:11