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使用os模块的os.walk遍历文件夹示例
Jan 27 Python
Python中请使用isinstance()判断变量类型
Aug 25 Python
Python标准库内置函数complex介绍
Nov 25 Python
在Python中封装GObject模块进行图形化程序编程的教程
Apr 14 Python
在Python中移动目录结构的方法
Jan 31 Python
Python内置模块hashlib、hmac与uuid用法分析
Feb 12 Python
Python标准库itertools的使用方法
Jan 17 Python
python连接PostgreSQL过程解析
Feb 09 Python
让Django的BooleanField支持字符串形式的输入方式
May 20 Python
linux mint中搜狗输入法导致pycharm卡死的问题
Oct 28 Python
如何设置PyCharm中的Python代码模版(推荐)
Nov 20 Python
python 实现超级玛丽游戏
Nov 25 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语法(3)
2006/10/09 PHP
PHP 巧用数组降低程序的时间复杂度
2010/01/01 PHP
PHPer 需要了解的 5 个 Composer 小技巧
2014/08/18 PHP
PHP 导出Excel示例分享
2014/08/18 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
jquery easyui使用心得
2014/07/07 Javascript
javascript实现获取浏览器版本、操作系统类型
2015/01/29 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
学习vue.js中class与style绑定
2016/12/03 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
vue与vue-i18n结合实现后台数据的多语言切换方法
2018/03/08 Javascript
微信小程序中this.data与this.setData的区别详解
2018/09/17 Javascript
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
Python3中条件控制、循环与函数的简易教程
2017/11/21 Python
python merge、concat合并数据集的实例讲解
2018/04/12 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
Python面向对象之静态属性、类方法与静态方法分析
2018/08/24 Python
Python的argparse库使用详解
2018/10/09 Python
Python 限制线程的最大数量的方法(Semaphore)
2019/02/22 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
介绍一下Python中webbrowser的用法
2013/05/07 面试题
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
大学学习计划书范文
2014/05/02 职场文书
负责人任命书范本
2014/06/04 职场文书
爱护花草树木的标语
2014/06/11 职场文书
学校查摆问题整改措施
2014/09/28 职场文书
教师党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
2016高考寄语集锦
2015/12/04 职场文书