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

Linux下不依赖外部模块实现Python命令行参数传递与读取

可行,实现方法如下

首先明确:Python获取命令行参数的唯一入口是内置的sys.argv,它属于Python标准库,不算“外部模块”,必须借助它拿到参数列表。你可以手动解析这个列表,把-key value格式的参数转换成全局变量,直接在程序里使用。

以下是实现代码:

import sys

def parse_cmd_args():
    args_dict = {}
    idx = 1
    # 跳过第一个元素(脚本文件名),遍历剩余参数
    while idx < len(sys.argv):
        # 处理以'-'开头的参数名
        if sys.argv[idx].startswith('-'):
            param_name = sys.argv[idx].lstrip('-')
            # 检查是否有对应的参数值
            if idx + 1 < len(sys.argv) and not sys.argv[idx+1].startswith('-'):
                args_dict[param_name] = sys.argv[idx+1]
                idx += 2
            else:
                # 无参数值的情况,默认设为True
                args_dict[param_name] = True
                idx += 1
        else:
            # 忽略非键值对格式的参数
            idx += 1
    return args_dict

# 解析参数并转为全局变量
cmd_args = parse_cmd_args()
globals().update(cmd_args)

# 测试使用变量
print(f"number的值是:{number}")
print(f"word的值是:{word}")

运行你指定的命令:

python3 myScript.py -number 1 -word "test"

执行后就能直接在脚本里使用number和word变量,输出结果为:

number的值是:1
word的值是:test

注意事项

  • 如果参数没有对应的值(比如输入python3 myScript.py -debug),该变量会被设为True
  • 非-key value格式的参数会被自动忽略
  • 若参数值包含空格,需要用引号包裹(如示例中的"test")

内容的提问来源于stack exchange,提问作者user19945252

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 00:02:10