python3获得命令行输入的参数
外部直接执行python文件时,我们有时需要获得命令行的参数
获得命令行参数的两种方式
1、通过sys.argv
sys.argv:获得一个参数列表,第一个值为文件名本身,通过sys.argv[1]获得第文件名后的第一个参数 ,多个参数使用空格隔开
测试代码:
import sysprint(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
测试代码:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import getopt
import sysopts,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:]
的缘故是命令行第一个参数为文件名本身,这里没有意义
python3获得命令行输入的参数相关推荐
- python命令行模式怎么输入_python获得命令行输入的参数的两种方式
外部直接执行python文件时,我们有时需要获得命令行的参数6ok免费资源网 获得命令行参数的两种方式6ok免费资源网 1.通过sys.argv6ok免费资源网 sys.argv:获得一个参数列表,第 ...
- python 命令行参数-Python3之命令行参数处理
toc sys模块 sys模块代表了Python解释器,主要用于获取和Python解释器相关的信息,其中 sys.argv 可以获取命令行参数 在Python交互式解释器中可以先导入sys模块 imp ...
- python命令行输入参数_Python命令行参数处理
sys模块 sys模块代表了Python解释器,主要用于获取和Python解释器相关的信息,其中 sys.argv 可以获取命令行参数 在Python交互式解释器中可以先导入sys模块 import ...
- python3的命令行参数
概述 Python3的命令行参数可以通过sys模块中的argv属性来获取.argv是一个字符串列表,包含了命令行参数.其中,argv[0]表示程序本身的名称,argv[1:]表示程序接收到的命令行参数 ...
- webpack源码阅读——npm脚本运行webpack与命令行输入webpack的区别
原文地址:webpack源码阅读--npm脚本执行webpack与命令行输入webpack执行的区别 如有错误,欢迎指正! webpack是目前被大家广为使用的模块打包器.从命令行输入webpack或 ...
- Dll注入过滤任意Windows控制台命令行输入
命令提示符也就是命令行控制台,新版本也叫做Windows 终端.如何做到当命令被输入控制台窗口后能够做到过滤呢? 其中,有一种就是键盘钩子判断键盘输入,但实用性可能不高. 另外一种方法就是获取控制台缓 ...
- 安装需要的第三方库时,命令行输入pip提示不是内部或外部命令
简介 在做Python开发时,安装需要的第三方库时,大多数人喜欢选择在命令行用pip进行安装. 然而有时敲入pip命令会提示'pip'不是内部或外部命令..如图: 解决办法 1.在python安装目录 ...
- 安装完Hadoop之后,命令行输入hadoop或hdfs却找不到命令的解决方法
安装完Hadoop之后,命令行输入hadoop或hdfs却找不到命令的解决方法 参考文章: (1)安装完Hadoop之后,命令行输入hadoop或hdfs却找不到命令的解决方法 (2)https:// ...
- python获取输入数字_python获取从命令行输入数字的方法
本文实例讲述了python获取从命令行输入数字的方法.分享给大家供大家参考.具体如下: #---------------------------------------- # Name: numeri ...
最新文章
- 【重磅】马斯克遇终极麻烦:被起诉欺诈罪 或丢掉CEO职位 特斯拉暴跌约13%
- Angular CLI 使用教程指南参考
- Part10 泛型程序设计与C++标准模板库 10.1泛型程序设计及STL的结构
- 趣谈网络协议笔记-二(第十六讲上)
- scanf中的%[^\n]%*c格式
- TextArea换行 滚动条
- hashcat 基本使用
- 双稳态电路的两个稳定状态是什么_利用SR锁存器实现SPDT开关消抖电路
- Atitit it软件领域职称评级规定,广博方向。 目录 1. 软件工程师资格证	1 1.1. 法规规范 十大标准,三级五晋制。	1 1.2. 组织架构 域职称评级委员会	2 1.3. 人员职责流程表
- linux系统清空文件内容
- c语言程序设计实践教程课后题,《C语言程序设计实践教程》答案-完整版.doc
- Threejs实现3d地球记录(5)
- 关于手机app合并m3u8文件失效,pc端合成方法
- Ubuntu 22.4网易云音乐启动失败处理方法
- Outlook 2013 重新联姻Hotmail ,Exchange ActiveSync牵线搭桥
- 基于LSTM的上证指数预测
- Tomcat在IIS下同端口运行方法(我用的tomcat8.5 iis 10网上各种坑)
- SkyWalking告警
- 证明:如果向量组A可由向量组B线性表示,那么A的秩小于等于B的秩
- SpringBoot整合Redis配置MyBatis二级缓存