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

Posted 我爱Python数据挖掘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python命令行传递参数的两种方式相关的知识,希望对你有一定的参考价值。

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

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

喜欢记得收藏、点赞、关注。技术交流、资料文末获取

1、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!

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

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

2、argparse参数

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

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

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

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

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

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

推荐文章

技术交流

欢迎转载、收藏、有所收获点赞支持一下!数据、代码可以找我获取

目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群;
  • 方式②、添加微信号:dkl88191,备注:来自CSDN
  • 方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

以上是关于python命令行传递参数的两种方式的主要内容,如果未能解决你的问题,请参考以下文章

Qt通过QProcess启动进程并传递命令行参数

npm获取配置值的两种方式

python的两种运行方式

关于java中函数参数传递的两种方式的总结

值传递和引用传递-----函数参数传递的两种方式

多线程传递参数的两种方式