百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python学习教程:python设置执行选项参数

off999 2024-10-17 11:43 36 浏览 0 评论

Python学习教程:python设置执行选项参数

一 . sys

可以通过sys.argv得到参数列表,其中sys.argv[0]是文件名称,此后的列表值是每一个参数,这里的参数列表也支持常规的列表操作

 for data in sys.argv:
 print("第{}个参数是:{}".format(sys.argv.index(data), data))
--------------------------------------------------------------------------------------
python mark_test.py first second three four -u username
第0个参数是:mark_test.py
第1个参数是:first
第2个参数是:second
第3个参数是:three
第4个参数是:four
第5个参数是:-u
第6个参数是:username

二 . Argparse

Argparse模块可以让人轻松编写用户友好的命令行接口,支持自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息

操作流程

I. 导入库import argparse

II. 初始化解析器parser = argparse.ArgumentParser()

III. 增加参数parser.add_argument()

IV. 解析参数args = parser.parse_args()

使用

参数分为位置参数和可选参数,通常会结合使用,分为以下三种情况

1. 布尔型可选参数

只要指明了--verbose关键字,则会将值设为True,并作出对应响应

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--verbose", help="increase output verbosity",
 action="store_true")
args = parser.parse_args()
if args.verbose:
 print("verbosity turned on")
-------------------------------------------------------------------------------------------
python mark_test.py 4 --verbose
#verbosity turned on
--------------------------------------------------------------------------------------------
python mark_test.py --ajschahc 2
#usage: mark_test.py [-h] [--verbose]
#mark_test.py: error: unrecognized arguments: --ashjca 1

2. 指定值的可选参数

指定可选参数的几个响应值,只能从指定值从指定参数值并做处理

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", type=int,
 help="display a square of a given number")
parser.add_argument("-v", "--verbosity", type=int, choices=[0, 1, 2],
 help="increase output verbosity")
args = parser.parse_args()
answer = args.square**2
if args.verbosity == 2:
 print("the square of {} equals {}".format(args.square, answer))
elif args.verbosity == 1:
 print("{}^2 == {}".format(args.square, answer))
else:
 print(answer)
-----------------------------------------------------------------------------------------------
python mark_test.py 4 -v 3
#usage: mark_test.py [-h] [-v {0,1,2}] square
#mark_test.py: error: argument -v/--verbosity: invalid choice: 3 (choose from 0, 1, 2)
-----------------------------------------------------------------------------------------------
python mark_test.py 4 -v 2
#the square of 4 equals 16

3. 指定可选参数长度(次数)

利用count来通过次数给定参数的响应操作,这里还给定了default值是因为默认情况下未指定可选参数则它将获取None值,无法进行数值比较

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", type=int,
 help="display a square of a given number")
parser.add_argument("-v", "--verbosity", action="count", default=0,
 help="increase output verbosity")
args = parser.parse_args()
answer = args.square**2
if args.verbosity >= 2:
 print("the square of {} equals {}".format(args.square, answer))
elif args.verbosity >= 1:
 print("{}^2 == {}".format(args.square, answer))
else:
 print(answer)
--------------------------------------------------------------------------------
python mark_test.py 4 -v
#the square of 4 equals 16
--------------------------------------------------------------------------------
python mark_test.py 4 -vv
#4^2 == 16

长格式和短格式是可以混合使用的,参考之前的例子,更多可参考Argparse

三 . Fire

Python Fire是一个Python库,只需一次调用即可将任何Python组件转换为命令行界面 Fire

1. 安装

pip install fire

2. 使用

Fire解析过程较为简单,在cmd中直接调用py文件中的函数、变量、类、实例等等

import fire
def newprint(text):
 print('my '+text)
def newadd(a,b):
 return a + b
fire.Fire() # 只要这一条命令
----------------------------------------------------------------
python cmd.py newprint notebook
#my notebook
----------------------------------------------------------------
python cmd.py newadd 2 3 
#python cmd.py newadd --a 2 --b 3
  • 在函数中将fire.Fire改为固定的方法或者类名,则仅执行该实例,如果是函数,调用时则不再需要指定函数名,类也只需要指明其内的函数名即可
  • 添加多个函数而非全部调用可使用
fire.Fire({
 'newadd': newadd,
 'newprint': newprint,
})

使用类名或者构造对象用法大都类似

import fire
class Myclass:
 def __init__(self, name):
 self.name = name
 def nameprint(self, parm):
 print(parm+ ', I am ' + self.name)
fire.Fire(Myclass)
-----------------------------------------------------------------
python cmd.py nameprint Yes --name June
#Yes, I am June

四 . getopt

getopt.getopt(args, options[, long_options])

  • args: 要解析的命令行参数列表。
  • options : 以字符串的格式定义,options 后的冒号 : 表示如果设置该选项,必须有附加的参数,否则就不附加参数。
  • long_options : 以列表的格式定义,long_options 后的等号 = 表示该选项必须有附加的参数,不带冒号表示该选项不附加参数。
  • 该方法返回值由两个元素组成: 第一个是 (option, value) 元组的列表。 第二个是参数列表,包含那些没有 - 或 – 的参数。
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys, getopt
def main(argv):
 inputfile = ''
 outputfile = ''
 try:
 opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
 except getopt.GetoptError:
 print 'test.py -i <inputfile> -o <outputfile>'
 sys.exit(2)
 for opt, arg in opts:
 if opt == '-h':
 print 'test.py -i <inputfile> -o <outputfile>'
 sys.exit()
 elif opt in ("-i", "--ifile"):
 inputfile = arg
 elif opt in ("-o", "--ofile"):
 outputfile = arg
 print '输入的文件为:', inputfile
 print '输出的文件为:', outputfile
if __name__ == "__main__":
 main(sys.argv[1:])
---------------------------------------------------------------------------
$ python test.py -h
#usage: test.py -i <inputfile> -o <outputfile>
---------------------------------------------------------------------------
$ python test.py -i inputfile -o outputfile
#输入的文件为: inputfile
#输出的文件为: outputfile
  • sys.argv[1:]为要处理的参数列表,sys.argv[0]为脚本名,所以用sys.argv[1:]过滤掉脚本名。

伙伴们哪里有不清楚的可以留言哦!不足之处,也感谢大家补充。更多的Python学习教程也会继续为大家更新!

相关推荐

win10两台电脑怎么共享文件(win10两台电脑怎么共享文件夹)

在Windows10中,您可以使用以下步骤共享文件:1.在要共享的文件夹上单击右键,选择“属性”。2.选择“共享”选项卡,然后选择“高级共享”。3.在“高级共享”对话框中,选中“共享此文件...

电脑复制粘贴不了是怎么回事

电脑无法复制粘贴原因分析及解决方法:如果是中病毒的话,会有以下的这些情况:1、系统不能上网,例如宽带账号无法登录,qq登录不上,网页无法打开。2、复制粘贴功能失效。3、电脑任务栏上的信息不能显示。4、...

win7一键烟雾头(win7烟雾头设置)

要调整Win7系统的烟雾头,首先需要打开“显示设置”窗口,在这个窗口中可以找到“分辨率”、“屏幕比例”等选项。接着,在“高级设置”中找到“显示适配器属性”选项,点击进入。在这个界面中,可以找到“3D设...

win7系统一键装机下载(w7一键安装操作系统)

可以在温十系统电脑上下载温七装机系统,但需要按照正确的步骤进行安装。以下是一个可能的安装步骤:1.在温十系统电脑上下载温七装机系统的ISO文件,可以从互联网上下载,也可以从其他媒体(如DVD或USB驱...

qq互联管理中心(qq互联管理中心是干什么的)

QQ互联是基于Discuz!云平台的一项服务,因此在开通QQ互联之前首先需要开通Discuz!云平台。在Discuz!X2中已经内置了云平台和相关服务,无需安装,在后台直接开启即可。可以呀,有...

win10新加固态硬盘怎么设置(win10加装固态后需要设置什么吗)

安装固态硬盘后,您可以按照以下步骤设置Win10系统:1.连接固态硬盘:将固态硬盘插入主板上的SATA数据线接口,并使用电源线将其连接到电源供应器上。2.启动电脑:开机后,进入BIOS设置界面。通...

戴尔电脑无法开机怎么解决(戴尔电脑无法开机怎么解决方法)

1、电源故障当遇到戴尔电脑开不了机的情况,首先是检查是否电源问题,看电源和插头是否存在没有插好的问题。可以使用同型号的电源试一下,重插电源之后,看看是否能够开机,如果换别人的电源能开机的话,那就是电源...

新风系统管道安装图片(新风系统安装管道布置)

新风管道安装与验收标准—安装步骤1.按照设计图纸确定新风管道的走向及管道的规格(管径、材质等)。2.截取新风管道要使用专用截管工具,并将断面口的毛刺、毛边打磨光滑,确保截口断面平整且垂直于管轴线。...

win732下载装机版(win732 下载)

32位系统安装方法如下1.下载win732位系统iso镜像到本地,不要放桌面或C盘,右键使用WinRAR等工具2.将win7.gho文件和Onekeyghost工具放到同一目录,比如D盘,不要放C...

惠普平板笔记本二合一(惠普平板笔记本二合一开不了机怎么办)

首先单击Office按钮,在下拉菜单中单击选择“打印”;2.在“打印”对话框中单击勾选“手动双面打印”复选项,再单击打印按钮进行打印;3.Word会先把1、3、5……等单页的内容发送到打印机打印;4....

台式机显卡天梯(笔记本显卡排行天梯图)

丽台显卡性能排行第一的是:丽台QuadroRTX8000第二是:丽台QuadroP620第三的是:丽台QuadroP2000第四是:丽台Quadrop4000第五是:丽台Quadrop1...

win7更换壁纸(win7更换壁纸显示黑色)

1、首先点开桌面左下角的开始按钮然后在弹出的界面中找到控制面板并打开。2、在控制面板界面的个性化专栏中找到在找到屏幕保护程序并打开。3、在打开的新界面中找到屏幕保护程序并将选项更改为“无”保存后就完成...

如何获取windows7正版(如何获得正版win7)

关于这个问题,获得Windows7激活密钥的方法有几种:1.在购买Windows7时,通常会附带一张带有激活密钥的正版产品密钥卡。您可以查看产品盒内的卡片或说明书,以获取此密钥。2.如果您购买...

重装系统win7旗舰版62位(如何用重装系统win7旗舰版)

要重装Windows7系统,可以按照以下步骤进行操作:1.准备计算机:确保计算机已经安装了Windows11操作系统,因为Windows7的兼容性问题可能会影响安装过程。如果计算机上没有安装W...

tp link app(TP LINKapp下载)

tplink手机app官方版是一款专为TP-LINK路由器手机设置应用,能够更好的管理TP-LINK路由器。tplink手机客户端特色1.实时获取路由器状态消息2.本地管理局域网内的TP-LINK路由...

取消回复欢迎 发表评论: