Logo

Logo

Python命令行运行脚本时传入参数的方式

Pastore Antonio
Pastore Antonio 2023年04月06日
915 阅读 0 评论 约 1728 字 阅读约 4 分钟

Python命令行运行脚本时传入参数的两种方式

1、python script.py 0,1,2 3
2、python script.py –a=0,1,2 –b=3
对应不同的参数解析方式,分别为sys.argv, argparse
(1) sys.argv :sys模块是很常用的模块, 它封装了与python解释器相关的数据
  • sys.argv 是命令行参数列表
  • len(sys.argv) 是命令行参数个数
  • sys.argv[0] 表示脚本名。
使用sys.argv接收上面第一个命令中包含的参数方式如下:
import sys
a = sys.argv[1]
b = sys.argv[2]
print(a, type(a))
print(b, type(b))
执行 python test.py 0,1,2 10结果:
0,1,2 <class 'str'>
3 <class 'str'>
(2)argparse:argparse 模块是 Python 内置的一个用于命令项选项与参数解析的模块,可以让用户轻松编写友好的命令行接口
使用的三个步骤:
1、创建一个解析器:即创建ArgumentParser()对象
2、添加参数:即调用add_argument()方法添加参数,格式及主要属性
  ArgumentParser.add_argument(name or flags…[, action][, default][, type])
  • name or flags: 一个命名或者一个选项字符串的列表,例如 foo(命名:位置参数)或 -f, –foo(旗标flag:可以在命令行里任意位置指定,前者一般为后者的缩略形式(比如查看某些库的版本时既可以使用 x -v 也可以使用 x -—version))
  • type :命令行参数应当被转换成的类型(type参数理论上可以是任何合法的类型, 但有些参数传入格式比较麻烦,例如list,所以一般使用bool, int, str, float这些基本类型就行了,更复杂的需求可以通过str传入,然后手动解析。bool类型的解析比较特殊,传入任何值都会被解析成True,传入空值时才为False)
  • action:当参数在命令行中出现时使用的动作基本类型(默认值action = ‘store’,代表存储参数的值)
  • default :当参数未在命令行中出现并且也不存在于命名空间对象时所产生的值
3、解析参数:即使用parse_args()解析添加的参数
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("loc", type=str)
parser.add_argument('loc2', type=str, default="5555")
parser.add_argument('--b', type=int, default=0)
parser.add_argument('-n', "--number", type=str, help='输入一个数字')  --此时n是number的缩写,参数会存在number中,而不是n中
args = parser.parse_args()

print(args.loc, type(args.loc))
print(args.loc2, type(args.loc2))
print(args.b, type(args.b))
print(args.number, type(args.number))

执行python test.py  --b=1 --number=2 3 5
3 <class 'str'>
5 <class 'str'>
1 <class 'int'>
2 <class 'str'>
从上述结果可知位置参数从上述结果可知是由命令行参数的顺序决定的,而参数–b,–number在命令行中何处指定都可以。
查看完整代码

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它
部分文章可能存在转载,如果涉及到侵权,请联系删除文章。

探索AIGC相关的精彩内容,共 15 篇文章

Azure AI 服务之语音识别

简介 Azure AI 服务中的语音识别 API 是微软提供的一项先进技术,旨在帮助开发者轻松实现语 ... Python命令行运行脚本时传入参数的方式

2026-02-17 · Xzavier Aaron
MCP | 一文详解什么是 MCP以及 MCP 可以做什么

一、什么是 MCP MCP(Model Context Protocol)是一个专为大型语言模型(L ... Python命令行运行脚本时传入参数的方式

2026-02-14 · Shen, Luke
你的工作流程,值得一个“全自动数字分身”:录制、截图、成文,一气呵成

一、一句话认识 TestFlow Recorder 在数字化工作环境中,如何准确记录操作步骤并生成清 ... Python命令行运行脚本时传入参数的方式

2026-02-14 · Xzavier Aaron
Flowise 前端框架配置指南

用户需求 问题:有没有适合配置 Flowise 的前端框架? 目标:寻找类似 Open WebUI ... Python命令行运行脚本时传入参数的方式

2026-02-14 · Xzavier Aaron