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 相关文章推荐
在Django中编写模版节点及注册标签的方法
Jul 20 Python
在Python中移动目录结构的方法
Jan 31 Python
python脚本实现验证码识别
Jun 07 Python
python提取包含关键字的整行数据方法
Dec 11 Python
Django之无名分组和有名分组的实现
Apr 16 Python
python模块hashlib(加密服务)知识点讲解
Nov 25 Python
使用python和pygame制作挡板弹球游戏
Dec 03 Python
Tensorflow的梯度异步更新示例
Jan 23 Python
PyCharm 无法 import pandas 程序卡住的解决方式
Mar 09 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 Python
5 分钟读懂Python 中的 Hook 钩子函数
Dec 09 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 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获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
PHP数据类型之整数类型、浮点数的介绍
2013/04/28 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
thinkphp实现like模糊查询实例
2014/10/29 PHP
PHP模板引擎Smarty中变量的使用方法示例
2016/04/11 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
jQuery中:selected选择器用法实例
2015/01/04 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
2015/08/06 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
微信小程序 http请求的session管理
2017/06/07 Javascript
JS实现简易换图时钟功能分析
2018/01/04 Javascript
layui 实现二级弹窗弹出之后 关闭一级弹窗的方法
2019/09/18 Javascript
[15:56]Heroes18_暗影萨满(完美)
2014/10/31 DOTA
介绍Python中的一些高级编程技巧
2015/04/02 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
numpy.array 操作使用简单总结
2019/11/08 Python
python实现七段数码管和倒计时效果
2019/11/23 Python
使用python批量修改XML文件中图像的depth值
2020/07/22 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
工程部主管岗位职责
2013/11/17 职场文书
鉴定评语大全
2014/05/05 职场文书
广播体操口号
2014/06/18 职场文书
课外小组活动总结
2014/08/27 职场文书
韩语专业职业生涯规划范文:成功之路就在我们脚下
2014/09/11 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
教师节寄语2015
2015/03/23 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
2015年高校就业工作总结
2015/05/04 职场文书
新学期主题班会
2015/08/17 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS