python命令行传递参数的两种方式

简介: python在命令行运行.py文件时,如何在命令行传递参数给运行程序,python默认提供了sys模块的系统参数属性实现接收命令行中的外部参数。另一种则是通过argparse模块实现的,argparse模块可以实现事先对命令行参数的初始化,更加的便于命令行参数的管理。

python在命令行运行.py文件时,如何在命令行传递参数给运行程序,python默认提供了sys模块的系统参数属性实现接收命令行中的外部参数。


另一种则是通过argparse模块实现的,argparse模块可以实现事先对命令行参数的初始化,更加的便于命令行参数的管理。

sys.argv参数

sys.argv的命令行参数获取方式比较的简单,直接通过提取sys.argv的值就可以获取到其对应的参数。


比如,下面写一个hello_world.py模块,并且在其中引用了命令行参数。

import sys
 
print('Hi ' + str(sys.argv[1]) + ', welcome to Hello World!')

直接在命令行执行当前的.py文件,执行命令应该是这样的。

python hello_world.py Siri

这时我们预期的结果应该是下面这样的。

# Hi Siri, welcome to Hello World!

执行后的结果和预期的运行结果是一模一样的。

1718197699077.jpg

在运行时,有一个不好的地方时,若是在命令行没有传递足够的参数,则会直接抛出下面的异常。

1718197717959.jpg

argparse参数

使用argparse模块,有一个好处就是事先对需要在命令行传递的参数做一个初始化的赋值,若是命令行没有值的时候则可以使用默认值来赋值。

并且argparse模块可以通过参数构造器ArgumentParser实现对参数的管理,看起来一目了然。0

import argparse
 
# 初始化参数构造器
parser = argparse.ArgumentParser()
 
# 在参数构造器中添加两个命令行参数
parser.add_argument('--name', type=str, default='Siri')
parser.add_argument('--message', type=str, default=',Welcom to Python World!')
 
# 获取所有的命令行参数
args = parser.parse_args()
 
print('Hi ' + str(args.name) + str(args.message))

同样的,创建一个hello_python.py文件,来运行上述代码块,看一下执行效果。

python hello_python.py

1718197782466.jpg

可以发现在未添加命令行的参数传递后,默认使用的是我们构造器中添加的参数默认值来进行赋值的。

接下来,若是我们在命令行中再次对参数进行重新赋值是怎样的效果。

python hello_python.py --name Laow  --message Hello_World

1718197886187.jpg


相关文章
|
7月前
|
Python
python pyqt5 cmd 命令行 控制台 打印 print 输出 显示打印内容 实时显示 界面
python pyqt5 cmd 命令行 控制台 打印 print 输出 显示打印内容 实时显示 界面
225 0
|
12天前
|
Python
Python命令行实现
Python命令行实现借助`click`模块,它提供了一种简单高效的方式来构建CLI应用。要开始,确保安装了`click`(`pip install click`)。基本示例是创建一个打印问候的程序,通过`@click.command()`和`@click.argument()`装饰器接收用户输入。`@click.option()`用于添加命令选项,而`@click.group()`则用于创建包含多个子命令的工具。通过组合参数和选项,可以构建更复杂的CLI应用。`click`的强大功能使得创建CLI变得轻松。
10 1
|
1月前
|
存储 开发者 Python
Python中的argparse模块:命令行参数解析的利器
Python中的argparse模块:命令行参数解析的利器
24 2
|
1月前
|
Python
python 多线程怎么传递参数
在Python多线程中,通过`Thread`类创建线程并传参。示例:定义函数`worker(num)`,在循环中创建5个线程,每个线程调用`worker`并传入`i`作为参数。参数需以元组形式传给`args`,如`args=(i,)`。
23 0
|
1月前
|
数据安全/隐私保护 Python
【python3.6】python安装PCL(适用命令行或pycham中)
【python3.6】python安装PCL(适用命令行或pycham中)
|
1月前
|
开发工具 Python
[oeasy]python0010_怎么用命令行保存文件
[oeasy]python0010_怎么用命令行保存文件
24 1
|
1月前
|
Linux iOS开发 MacOS
Python 进阶指南(编程轻松进阶):二、环境配置和命令行
Python 进阶指南(编程轻松进阶):二、环境配置和命令行
74 0
|
6月前
|
块存储 Python
rados 命令行函数 调试 ceph python
rados 命令行函数 调试 ceph python
40 0
|
7月前
|
Java Python
java调用python脚本并传递参数list
java调用python脚本并传递参数list
|
9月前
|
NoSQL Linux C++
Linux下使用命令行调试Python程序
Linux下使用命令行调试Python程序
334 0
Linux下使用命令行调试Python程序