外部直接执行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获得命令行输入的参数相关推荐

  1. python命令行模式怎么输入_python获得命令行输入的参数的两种方式

    外部直接执行python文件时,我们有时需要获得命令行的参数6ok免费资源网 获得命令行参数的两种方式6ok免费资源网 1.通过sys.argv6ok免费资源网 sys.argv:获得一个参数列表,第 ...

  2. python 命令行参数-Python3之命令行参数处理

    toc sys模块 sys模块代表了Python解释器,主要用于获取和Python解释器相关的信息,其中 sys.argv 可以获取命令行参数 在Python交互式解释器中可以先导入sys模块 imp ...

  3. python命令行输入参数_Python命令行参数处理

    sys模块 sys模块代表了Python解释器,主要用于获取和Python解释器相关的信息,其中 sys.argv 可以获取命令行参数 在Python交互式解释器中可以先导入sys模块 import ...

  4. python3的命令行参数

    概述 Python3的命令行参数可以通过sys模块中的argv属性来获取.argv是一个字符串列表,包含了命令行参数.其中,argv[0]表示程序本身的名称,argv[1:]表示程序接收到的命令行参数 ...

  5. webpack源码阅读——npm脚本运行webpack与命令行输入webpack的区别

    原文地址:webpack源码阅读--npm脚本执行webpack与命令行输入webpack执行的区别 如有错误,欢迎指正! webpack是目前被大家广为使用的模块打包器.从命令行输入webpack或 ...

  6. Dll注入过滤任意Windows控制台命令行输入

    命令提示符也就是命令行控制台,新版本也叫做Windows 终端.如何做到当命令被输入控制台窗口后能够做到过滤呢? 其中,有一种就是键盘钩子判断键盘输入,但实用性可能不高. 另外一种方法就是获取控制台缓 ...

  7. 安装需要的第三方库时,命令行输入pip提示不是内部或外部命令

    简介 在做Python开发时,安装需要的第三方库时,大多数人喜欢选择在命令行用pip进行安装. 然而有时敲入pip命令会提示'pip'不是内部或外部命令..如图: 解决办法 1.在python安装目录 ...

  8. 安装完Hadoop之后,命令行输入hadoop或hdfs却找不到命令的解决方法

    安装完Hadoop之后,命令行输入hadoop或hdfs却找不到命令的解决方法 参考文章: (1)安装完Hadoop之后,命令行输入hadoop或hdfs却找不到命令的解决方法 (2)https:// ...

  9. python获取输入数字_python获取从命令行输入数字的方法

    本文实例讲述了python获取从命令行输入数字的方法.分享给大家供大家参考.具体如下: #---------------------------------------- # Name: numeri ...

最新文章

  1. 【重磅】马斯克遇终极麻烦:被起诉欺诈罪 或丢掉CEO职位 特斯拉暴跌约13%
  2. Angular CLI 使用教程指南参考
  3. Part10 泛型程序设计与C++标准模板库 10.1泛型程序设计及STL的结构
  4. 趣谈网络协议笔记-二(第十六讲上)
  5. scanf中的%[^\n]%*c格式
  6. TextArea换行 滚动条
  7. hashcat 基本使用
  8. 双稳态电路的两个稳定状态是什么_利用SR锁存器实现SPDT开关消抖电路
  9. Atitit it软件领域职称评级规定,广博方向。 目录 1. 软件工程师资格证 1 1.1. 法规规范 十大标准,三级五晋制。 1 1.2. 组织架构 域职称评级委员会 2 1.3. 人员职责流程表
  10. linux系统清空文件内容
  11. c语言程序设计实践教程课后题,《C语言程序设计实践教程》答案-完整版.doc
  12. Threejs实现3d地球记录(5)
  13. 关于手机app合并m3u8文件失效,pc端合成方法
  14. Ubuntu 22.4网易云音乐启动失败处理方法
  15. Outlook 2013 重新联姻Hotmail ,Exchange ActiveSync牵线搭桥
  16. 基于LSTM的上证指数预测
  17. Tomcat在IIS下同端口运行方法(我用的tomcat8.5 iis 10网上各种坑)
  18. SkyWalking告警
  19. 证明:如果向量组A可由向量组B线性表示,那么A的秩小于等于B的秩
  20. SpringBoot整合Redis配置MyBatis二级缓存

热门文章

  1. Swoole 自定义项目初始化事件处理的实现
  2. 1、python的基础
  3. ArcGIS JavaScript API 实现基本的地图功能
  4. [Reprint] 探寻C++最快的读取文件的方案
  5. mysql 查询缓存
  6. MinGW 与MSVC的区别
  7. 孙钟秀--《操作系统教程》注释(陈怀临)-- 读书笔记
  8. 在同一台服务器上启动多个 FreeSWITCH 实例
  9. java管理从程序员到CTO的Java技术路线图
  10. 温斯顿英语 PHP,温斯顿英语