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的绘图工具matplotlib使用实例
Jul 03 Python
Python中实现参数类型检查的简单方法
Apr 21 Python
python使用PyGame模块播放声音的方法
May 20 Python
使用Python的Twisted框架构建非阻塞下载程序的实例教程
May 25 Python
Django Admin 实现外键过滤的方法
Sep 29 Python
pandas.DataFrame.to_json按行转json的方法
Jun 05 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
Dec 12 Python
python制作mysql数据迁移脚本
Jan 01 Python
解决yum对python依赖版本问题
Jul 05 Python
在Django admin中编辑ManyToManyField的实现方法
Aug 09 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
Aug 11 Python
Python中的datetime包与time包包和模块详情
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
php5.2时间相差8小时
2007/01/15 PHP
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
2017/06/07 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
dojo 之基础篇(三)之向服务器发送数据
2007/03/24 Javascript
9个JavaScript评级/投票插件
2010/01/18 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
浅谈JS的基础类型与引用类型
2016/09/13 Javascript
详解jQuery中ajax.load()方法
2017/01/25 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
JS实现动态添加外部js、css到head标签的方法
2019/06/05 Javascript
[43:35]TI4 循环赛第二日Liquid vs Fnatic
2014/07/11 DOTA
python3访问sina首页中文的处理方法
2014/02/24 Python
跟老齐学Python之不要红头文件(2)
2014/09/28 Python
对于Python中线程问题的简单讲解
2015/04/03 Python
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
python 错误处理 assert详解
2020/04/20 Python
python二维图制作的实例代码
2020/12/03 Python
丝芙兰巴西官方商城:SEPHORA巴西
2016/10/31 全球购物
有针对性的求职自荐信
2013/11/14 职场文书
入团者的自我评价分享
2013/12/02 职场文书
国贸类专业毕业生的求职信分享
2013/12/08 职场文书
单位介绍信范文
2014/01/18 职场文书
评析教师个人的自我评价
2014/02/19 职场文书
培训班开班仪式主持词
2014/03/28 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
2015大学生实训报告
2014/11/05 职场文书
[有人@你]你有一封绿色倡议书,请查收!
2019/07/18 职场文书