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自动监控网站并发送邮件告警的方法
Aug 24 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
Nov 20 Python
Python学习之Django的管理界面代码示例
Feb 10 Python
Python实现查看系统启动项功能示例
May 10 Python
在pycharm上mongodb配置及可视化设置方法
Nov 30 Python
Python判断telnet通不通的实例
Jan 26 Python
Laravel框架表单验证格式化输出的方法
Sep 25 Python
Tensorflow中tf.ConfigProto()的用法详解
Feb 06 Python
Pandas直接读取sql脚本的方法
Jan 21 Python
python中time tzset()函数实例用法
Feb 18 Python
Python Django模型详解
Oct 05 Python
python中的3种定义类方法
Nov 27 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
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
for循环连续求和、九九乘法表代码
2012/02/20 PHP
分享最受欢迎的5款PHP框架
2014/11/27 PHP
php程序内部post数据的方法
2015/03/31 PHP
PHP自毁程序(慎用)
2015/07/09 PHP
Windows2003下php5.4安装配置教程(IIS)
2016/06/30 PHP
php版微信发红包接口用法示例
2016/09/23 PHP
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
ES6解构赋值的功能与用途实例分析
2017/10/31 Javascript
React全家桶环境搭建过程详解
2018/05/18 Javascript
Vue的data、computed、watch源码浅谈
2020/04/04 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
Python中使用wxPython开发的一个简易笔记本程序实例
2015/02/08 Python
详解如何为eclipse安装合适版本的python插件pydev
2018/11/04 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
python实现ip地址的包含关系判断
2020/02/07 Python
pycharm 对代码做静态检查操作
2020/06/09 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
python实现定时发送邮件
2020/12/23 Python
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
2013/06/06 HTML / CSS
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
100%有机精油,美容油:House of Pure Essence
2018/10/30 全球购物
澳洲本土太阳镜品牌:Quay Australia
2019/07/29 全球购物
亚马逊海外购:亚马逊美国、英国、日本、德国直邮
2021/03/18 全球购物
优秀求职信范文分享
2013/12/19 职场文书
美食节目策划方案
2014/05/31 职场文书
新文化运动的口号
2014/06/21 职场文书
2014年幼师工作总结
2014/11/22 职场文书
2016年会开场白台词
2015/06/01 职场文书
2015初中团委工作总结
2015/07/28 职场文书