python获得命令行输入的参数的两种方式


Posted in Python onNovember 02, 2020

外部直接执行python文件时,我们有时需要获得命令行的参数

获得命令行参数的两种方式

1、通过sys.argv

sys.argv:获得一个参数列表,第一个值为文件名本身,通过sys.argv[1]获得第文件名后的第一个参数 ,多个参数使用空格隔开

测试代码:

import sys
 
print(sys.argv)
print(len(sys.argv))
print(len(sys.argv[1]))

测试数据:

python3 test.py 第一个参数 第二个参数

执行结果:

['test.py', '第一个参数', '第二个参数']
3
5
[]
['第一个参数', '第二个参数']

2、通过getopt()获得参数值

如果命令行需要通过linux那中指定参数名的方法运行,可以使用getopt()来获得参数内容

命令【getopt.getopt(参数列表,"短选项参数",[长选项参数])】
参数有两种维度区分:短选项,长选项;带参数值(开关)和不带参数值

短选项参数(命令行使用-参数名):由1个字母组成,如果字母后面跟冒号:表示这个参数需要有参数值,否则表示不输入参数值
例如:io:
表示入参要输入-i -o=xxx

长选项参数(命令行使用--参数名):由[参数名=]表示,有值的参数一定要写=,否则会抛错
例如:["help","input=","output="]
表示入参要输入 --help --input=xxx --output=xxx

测试代码:

import getopt
import sys
 
opts,args=getopt.getopt(sys.argv[1:],"i:ho:",["help","input=","output="])
print(opts)
print(args)
 
for opts,arg in opts:
  print(opts)
  if opts=="-h" or opts=="--help":
    print("我只是一个说明文档")
  elif opts=="-i" or opts=="--input":
    print("我只是输入,输入内容如下:")
    print(arg)
  elif opts=="-o" or opts=="--output":
    print("我只是输出,输出内容如下:")
    print(arg)

测试数据:

python3 test.py -h -o=输出 --input=输入 最后一个参数

测试结果:

[('-h', ''), ('-o', '=输出'), ('--input', '输入')]
['最后一个参数']
-h
我只是一个说明文档
-o
我只是输出,输出内容如下:
=输出
--input
我只是输入,输入内容如下:
输入

说明:使用getopt()需要注意一下,不能把未定义的参数放到短选项和长选项的前面,否则-h --help这种不能读取到参数值(源码中不是很严谨,遇到这种情况直接就break了),放到后面可以,也能通过args获取到

getopt()中第一个参数写sys.argv[1:]的缘故是命令行第一个参数为文件名本身,这里没有意义

总结

到此这篇关于python获得命令行输入的参数的两种方式的文章就介绍到这了,更多相关python命令行参数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python中使用OpenCV进行人脸检测的例子
Apr 18 Python
python过滤字符串中不属于指定集合中字符的类实例
Jun 30 Python
Python3连接MySQL(pymysql)模拟转账实现代码
May 24 Python
Python中序列的修改、散列与切片详解
Aug 27 Python
Django组件cookie与session的具体使用
Jun 05 Python
Python类反射机制使用实例解析
Dec 30 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
Apr 03 Python
Keras之自定义损失(loss)函数用法说明
Jun 10 Python
Python如何实现线程间通信
Jul 30 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
Sep 16 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
Dec 07 Python
Pytest中conftest.py的用法
Jun 27 Python
Python+OpenCV检测灯光亮点的实现方法
Nov 02 #Python
python获取命令行参数实例方法讲解
Nov 02 #Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
Nov 01 #Python
详解tensorflow之过拟合问题实战
Nov 01 #Python
python cookie反爬处理的实现
Nov 01 #Python
10个python爬虫入门实例(小结)
Nov 01 #Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
Nov 01 #Python
You might like
php实现将base64格式图片保存在指定目录的方法
2016/10/13 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
用于table内容排序
2006/07/21 Javascript
javaScript call 函数的用法说明
2010/04/09 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件
2010/08/24 Javascript
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
浅谈js停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
2017/02/08 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
2018/12/10 Javascript
JS通用方法触发点击事件代码实例
2020/02/17 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
python动态监控日志内容的示例
2014/02/16 Python
在ironpython中利用装饰器执行SQL操作的例子
2015/05/02 Python
通过mod_python配置运行在Apache上的Django框架
2015/07/22 Python
Python简单实现enum功能的方法
2016/04/25 Python
python列表的增删改查实例代码
2018/01/30 Python
彻底理解Python中的yield关键字
2019/04/01 Python
Python对象转换为json的方法步骤
2019/04/25 Python
windows下python虚拟环境virtualenv安装和使用详解
2019/07/16 Python
Django实现发送邮件功能
2019/07/18 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
2020/02/06 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
化工专业推荐信范文
2013/11/28 职场文书
个人安全承诺书
2014/05/22 职场文书
2015年教师工作总结范文
2015/03/31 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书
redis requires ruby version2.2.2的解决方案
2021/07/15 Redis
Python读取和写入Excel数据
2022/04/20 Python