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 相关文章推荐
windows10系统中安装python3.x+scrapy教程
Nov 08 Python
python将回车作为输入内容的实例
Jun 23 Python
python 异或加密字符串的实例
Oct 14 Python
Python中extend和append的区别讲解
Jan 24 Python
值得收藏的10道python 面试题
Apr 15 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
Oct 09 Python
用python拟合等角螺线的实现示例
Dec 27 Python
Python基于DB-API操作MySQL数据库过程解析
Apr 23 Python
Python 如何创建一个简单的REST接口
Jul 30 Python
pytorch下的unsqueeze和squeeze的用法说明
Feb 06 Python
使用pytorch实现线性回归
Apr 11 Python
超级详细实用的pycharm常用快捷键
May 12 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中常用字符串处理代码片段整理
2011/11/07 PHP
php笔记之:文章中图片处理的使用
2013/04/26 PHP
使用dump函数,给php加断点测试
2013/06/25 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
php截取字符串函数分享
2015/02/02 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
jquery获取多个checkbox的值异步提交给php的方法
2015/06/24 PHP
基于jquery的气泡提示效果
2010/05/31 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
JavaScript实现弹出子窗口并传值给父窗口
2014/12/18 Javascript
JS在浏览器中解析Base64编码图像
2017/02/09 Javascript
vue 开发一个按钮组件的示例代码
2018/03/27 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
Python yield 小结和实例
2014/04/25 Python
python字典多条件排序方法实例
2014/06/30 Python
python实现简单温度转换的方法
2015/03/13 Python
python实现批量改文件名称的方法
2015/05/25 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
2017/06/05 Python
Python+PyQt5实现美剧爬虫可视工具的方法
2019/04/25 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
Css3+Js制作漂亮时钟(附源码)
2013/04/24 HTML / CSS
实习护理工作自我评价
2013/09/25 职场文书
个性发展自我评价
2014/02/11 职场文书
风险评估实施方案
2014/03/09 职场文书
工作失职检讨书500字
2014/10/17 职场文书
六一文艺汇演开幕词
2015/01/29 职场文书
导游词300字
2015/02/13 职场文书
二审答辩状格式
2015/05/22 职场文书
python开发的自动化运维工具ansible详解
2021/08/07 Python
详解Vue3使用axios的配置教程
2022/04/29 Vue.js