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的Flask框架下收发电子邮件的教程
Apr 21 Python
python实现12306火车票查询器
Apr 20 Python
python之从文件读取数据到list的实例讲解
Apr 19 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
Windows下python3.7安装教程
Jul 31 Python
Python2 Selenium元素定位的实现(8种)
Feb 25 Python
pygame编写音乐播放器的实现代码示例
Nov 19 Python
Django admin管理工具TabularInline类用法详解
May 14 Python
python中前缀运算符 *和 **的用法示例详解
May 28 Python
django模型类中,null=True,blank=True用法说明
Jul 09 Python
教你如何用python操作摄像头以及对视频流的处理
Oct 12 Python
分享unittest单元测试框架中几种常用的用例加载方法
Dec 02 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关键词替换的类(避免重复替换,保留与还原原始链接)
2015/09/22 PHP
JavaScript中的私有成员
2006/09/18 Javascript
JS解析XML的实现代码
2009/11/12 Javascript
javascript 程序库的比较(一)之DOM功能
2010/04/07 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
javascript事件模型介绍
2016/05/31 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
微信开发之企业付款到银行卡接口开发的示例代码
2018/09/18 Javascript
elementUI select组件默认选中效果实现的方法
2019/03/25 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
微信小程序-API接口安全详解
2019/07/16 Javascript
[01:38]完美世界DOTA2联赛PWL S3 集锦第四期
2020/12/21 DOTA
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
Python元组拆包和具名元组解析实例详解
2018/03/26 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
HTML5实现签到 功能
2018/10/09 HTML / CSS
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
Gina Bacconi官网:吉娜贝康尼连衣裙和礼服
2018/04/24 全球购物
Foot Locker澳洲官网:美国运动服和鞋类零售商
2019/10/11 全球购物
资生堂英国官网:Shiseido英国
2020/12/30 全球购物
网络教育自我鉴定
2013/11/01 职场文书
会计职业生涯规划范文
2014/01/04 职场文书
农贸市场管理制度
2014/01/31 职场文书
生日宴会策划方案
2014/06/03 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
邀请函格式范文
2015/02/02 职场文书
2015年保洁员工作总结
2015/05/04 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
Python使用openpyxl批量处理数据
2021/06/23 Python
Java Socket实现多人聊天系统
2021/07/15 Java/Android
IDEA2021.2配置docker如何将springboot项目打成镜像一键发布部署
2021/09/25 Java/Android
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
2022/08/14 Servers