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实现在每个独立进程中运行一个函数的方法
Apr 23 Python
批处理与python代码混合编程的方法
May 19 Python
python面向对象入门教程之从代码复用开始(一)
Dec 11 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
简单了解django orm中介模型
Jul 30 Python
用python求一重积分和二重积分的例子
Dec 06 Python
python matplotlib.pyplot.plot()参数用法
Apr 14 Python
Python读写压缩文件的方法
Jul 30 Python
python logging模块的使用
Sep 07 Python
python matlab库简单用法讲解
Dec 31 Python
Python-typing: 类型标注与支持 Any类型详解
May 10 Python
Python基本数据类型之字符串str
Jul 21 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 printf输出格式使用说明
2010/12/05 PHP
php查询操作实现投票功能
2016/05/09 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
Laravel实现批量更新多条数据
2020/04/06 PHP
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
2019/09/27 Javascript
vue-dplayer 视频播放器实例代码
2019/11/08 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法
2020/05/03 Javascript
JS实现小米轮播图
2020/09/21 Javascript
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
使用python开发vim插件及心得分享
2014/11/04 Python
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
python更改已存在excel文件的方法
2018/05/03 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
论文评语大全
2014/04/29 职场文书
保护动物的标语
2014/06/11 职场文书
2014年学雷锋活动总结
2014/06/26 职场文书
2015年营业员工作总结
2015/04/23 职场文书
社会实践活动总结格式
2015/05/11 职场文书
迎新年主持词
2015/07/06 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
心得体会格式及范文
2016/01/25 职场文书
Python实现的扫码工具居然这么好用!
2021/06/07 Python
Python 中的Sympy详细使用
2021/08/07 Python