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多进程编程技术实例分析
Sep 16 Python
django之常用命令详解
Jun 30 Python
Python数据操作方法封装类实例
Jun 23 Python
Python使用修饰器执行函数的参数检查功能示例
Sep 26 Python
numpy中索引和切片详解
Dec 15 Python
详解python使用turtle库来画一朵花
Mar 21 Python
Python Gluon参数和模块命名操作教程
Dec 18 Python
python读写Excel表格的实例代码(简单实用)
Dec 19 Python
Python爬虫实现模拟点击动态页面
Mar 05 Python
python selenium 获取接口数据的实现
Dec 07 Python
Python字典和列表性能之间的比较
Jun 07 Python
Python 实现Mac 屏幕截图详解
Oct 05 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
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
Javascript判断对象是否相等实现代码
2013/03/18 Javascript
js菜单点击显示或隐藏效果的简单实例
2014/01/13 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
input输入框内容实时监测(附代码)
2017/08/15 Javascript
Vue全家桶实践项目总结(推荐)
2017/11/04 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
使用Node.js实现base64和png文件相互转换的方法
2020/03/11 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
在Windows8上的搭建Python和Django环境
2014/07/03 Python
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
2018/02/24 Python
Python函数装饰器常见使用方法实例详解
2019/03/30 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
python实现代码统计程序
2019/09/19 Python
python实现的Iou与Giou代码
2020/01/18 Python
HTML5为输入框添加语音输入功能的实现方法
2017/02/06 HTML / CSS
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
伦敦最著名的老字号百货公司:Selfridges(塞尔福里奇百货)
2016/07/25 全球购物
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
大学生自我鉴定范文
2013/12/28 职场文书
买房协议书范本
2014/10/23 职场文书
依法行政工作汇报材料
2014/10/28 职场文书
学校捐书活动总结
2015/05/08 职场文书
二婚主持词
2015/06/30 职场文书
“学党章、守党纪、讲党规”学习心得体会
2016/01/14 职场文书
五年级语文教学反思
2016/03/03 职场文书
Python办公自动化之Excel(中)
2021/05/24 Python