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之再深点,更懂list
Sep 20 Python
Python实现大文件排序的方法
Jul 10 Python
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
Apr 27 Python
python字典键值对的添加和遍历方法
Sep 11 Python
pandas读取csv文件,分隔符参数sep的实例
Dec 12 Python
python tkinter实现界面切换的示例代码
Jun 14 Python
python实现动态数组的示例代码
Jul 15 Python
django云端留言板实例详解
Jul 22 Python
django formset实现数据表的批量操作的示例代码
Dec 06 Python
django 获取字段最大值,最新的记录操作
Aug 09 Python
Python使用MapReduce进行简单的销售统计
Apr 22 Python
python和C/C++混合编程之使用ctypes调用 C/C++的dll
Apr 29 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实现多条件查询实例代码
2010/07/17 PHP
php实现文件下载更能介绍
2012/11/23 PHP
php中异常处理方法小结
2015/01/09 PHP
YII Framework框架教程之缓存用法详解
2016/03/14 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
javaScript call 函数的用法说明
2010/04/09 Javascript
AngularJS仿苹果滑屏删除控件
2016/01/18 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
基于jQuery实现滚动切换效果
2016/12/02 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
ES6知识点整理之对象解构赋值应用示例
2019/04/17 Javascript
微信小程序实现底部弹出模态框
2020/11/18 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
在Python中使用poplib模块收取邮件的教程
2015/04/29 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
Python实现的各种常见分布算法示例
2018/12/13 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
对django 模型 unique together的示例讲解
2019/08/06 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
在终端启动Python时报错的解决方案
2020/11/20 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
工业自动化专业毕业生推荐信
2013/11/18 职场文书
幼儿园春游活动方案
2014/01/19 职场文书
高二英语教学反思
2014/01/19 职场文书
构建高效课堂实施方案
2014/03/13 职场文书
机械工程及其自动化专业求职信
2014/08/08 职场文书
4s店活动策划方案
2014/08/25 职场文书
小学师德师风演讲稿
2014/09/02 职场文书
师德师风自查材料
2014/10/14 职场文书
公司财务部岗位职责
2015/04/14 职场文书
导盲犬小Q观后感
2015/06/11 职场文书
详解盒子端CSS动画性能提升
2021/05/24 HTML / CSS
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL