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正则表达式的使用范例详解
Aug 08 Python
Python中死锁的形成示例及死锁情况的防止
Jun 14 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
Jun 29 Python
django manage.py扩展自定义命令方法
May 27 Python
PyCharm代码提示忽略大小写设置方法
Oct 28 Python
Python修改文件往指定行插入内容的实例
Jan 30 Python
Django REST framework 视图和路由详解
Jul 19 Python
python判断一个对象是否可迭代的例子
Jul 22 Python
python爬取代理IP并进行有效的IP测试实现
Oct 09 Python
appium+python自动化配置(adk、jdk、node.js)
Nov 17 Python
Python 把两层列表展开平铺成一层(5种实现方式)
Apr 07 Python
python保存图片的四个常用方法
Feb 28 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
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
Windows下的PHP5.0安装配制详解
2006/09/05 PHP
php 破解防盗链图片函数
2008/12/09 PHP
php设计模式 Mediator (中介者模式)
2011/06/26 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
2014/05/09 PHP
php实现的ping端口函数实例
2014/11/12 PHP
JQuery里选择超链接的实现代码
2011/05/22 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
2013/08/28 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
论JavaScript模块化编程
2016/03/07 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
jquery中绑定事件的异同
2017/02/28 Javascript
nodejs入门教程六:express模块用法示例
2017/04/24 NodeJs
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
[03:17]2016完美“圣”典风云人物:冷冷专访
2016/12/08 DOTA
[04:45]DOTA2-DPC中国联赛正赛 iG vs LBZS 赛后选手采访
2021/03/11 DOTA
python中类和实例如何绑定属性与方法示例详解
2017/08/18 Python
详解python实现线程安全的单例模式
2018/03/05 Python
Django组件content-type使用方法详解
2019/07/19 Python
pycharm修改file type方式
2019/11/19 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
大韩航空官方网站:Korean Air
2017/10/25 全球购物
艺龙旅行网酒店预订:国内、港澳台酒店
2018/06/26 全球购物
庆元旦文艺演出主持词
2014/03/27 职场文书
挂牌仪式策划方案
2014/05/18 职场文书
小学英语教师先进事迹
2014/05/28 职场文书
2015年试用期工作总结
2014/12/12 职场文书
婚宴新娘致辞
2015/07/28 职场文书
CSS3 制作的图片滚动效果
2021/04/14 HTML / CSS
PyQt5实现多张图片显示并滚动
2021/06/11 Python