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获取当前公网ip并自动断开宽带连接实例代码
Jan 12 Python
Python中一些不为人知的基础技巧总结
May 19 Python
详解python多线程之间的同步(一)
Apr 03 Python
使用Python检测文章抄袭及去重算法原理解析
Jun 14 Python
通过python检测字符串的字母
Feb 18 Python
selenium WebDriverWait类等待机制的实现
Mar 18 Python
Python网页解析器使用实例详解
May 30 Python
基于Python快速处理PDF表格数据
Jun 03 Python
python实现画图工具
Aug 27 Python
如何通过python计算圆周率PI
Nov 11 Python
python try...finally...的实现方法
Nov 25 Python
Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
Mar 03 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
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
javascript中的onkeyup和onkeydown区别介绍
2013/04/28 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
jquery比较简洁的软键盘特效实现方法
2015/03/19 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
2017/08/08 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
2019/06/21 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
vue中监听路由参数的变化及方法
2019/12/06 Javascript
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
2020/03/02 Javascript
vant实现购物车功能
2020/06/29 Javascript
[00:34]DOTA2上海特级锦标赛 VG战队宣传片
2016/03/04 DOTA
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python之模拟鼠标键盘动作具体实现
2013/12/30 Python
Python实现保证只能运行一个脚本实例
2015/06/24 Python
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
requests和lxml实现爬虫的方法
2017/06/11 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
对Pycharm创建py文件时自定义头部模板的方法详解
2019/02/12 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
python实现银行管理系统
2019/10/25 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
成人教育自我鉴定
2013/11/01 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
2016年中秋祝酒词
2015/11/26 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python