0

0

python命令行参数是什么

爱喝马黛茶的安东尼

爱喝马黛茶的安东尼

发布时间:2019-06-25 09:30:19

|

6628人浏览过

|

来源于php中文网

原创

python命令行参数是什么

python命令行参数是什么?下面给大家具体介绍一下什么是命令行参数:

sys.argv

Python 中也可以所用 sys 的 sys.argv 来获取命令行参数:

sys.argv 是命令行参数列表。

立即学习Python免费学习笔记(深入)”;

len(sys.argv) 是命令行参数个数。

sys.argv[0]是脚本文件的名字,如:test.py

sys.argv[1:]是以空格分割的参数列表

getopt

函数原型:

getopt(args, shortopts, longopts = [])

参数:
args:需要解析的参数,一般是sys.argv[1:]
shortopts:短格式 (-),有冒号:表示参数后面需要参数值,没有冒号表示后面无需参数值
longopts:长格式(--) ,有等号表示参数后面需要参数值,没有等号表示后面无需参数值
返回值:
options是个包含元祖的列表,每个元祖是分析出来的格式信息,比如 [('-i','127.0.0.1'),('-p','80')] ;
args 是个列表,包含那些没有‘-’或‘--’的参数,比如:['55','66']

相关推荐:《Python视频教程

示例:

import sys
import getopt
try:    
    options,args = getopt.getopt(sys.argv[1:],"hp:i:", ["help","ip=","port="])
except getopt.GetoptError:    
    sys.exit()
for name,value in options:   
    if name in ("-h","--help"):        
        usage()    
    if name in ("-i","--ip"):        
        print 'ip is----',value    
    if name in ("-p","--port"):        
    print 'port is----',value
python test.py -i 127.0.0.1 -p 80 55 66
python test.py --ip=127.0.0.1 --port=80 55 66

“hp:i:”  
短格式 --- h 后面没有冒号:表示后面不带参数,p:和 i:后面有冒号表示后面需要参数
["help","ip=","port="]  
长格式 --- help后面没有等号=,表示后面不带参数,其他三个有=,表示后面需要参数
注意:定义命令行参数时,要先定义带'-'选项的参数,再定义没有‘-’的参数

optparse

类OptionParser

php 配置文件php.ini的中文注释版(09.4)
php 配置文件php.ini的中文注释版(09.4)

在WINDOWS下,编译时的路径是WINDOWS安装目录。 ; 在命令行模式下,PHP.INI的查找路径可以用 -C 参数替代。 ; 该文件的语法非常简单。空白字符和用分号´;´开始的行被简单地忽略(就象你可能 ; 猜到的一样)。 章节标题(例如 : [FOO])也被简单地忽略,即使将来它们可能 ; 有某种的意义。 ; ;

下载
class optparse.OptionParser(usage=None, 
                 option_list=None,
                 option_class=Option,
                 version=None,
                 conflict_handler="error",
                 description=None,
                 formatter=None,
                 add_help_option=True,
                 prog=None,
                 epilog=None)

参数:

usage:程序的使用说明,其中"%prog"会替换为文件名(或者prog属性,若指定了prog属性值),"[options]"会替换为各个参数的使用说明
version:版本号

函数add_option()

add_option(short, long, action, type, dest, default, help)

参数:
short option string: 为第一个参数,表示option的缩写,例如-f;
long option string: 为第二个参数,表示option的全拼,例如--file;
action=: 表示对此option的处理方式,默认值为store,表示存储option的值到解析后的options对象的成员中。

action还可以有其他的值:对于bool值,使用store_true来默认存储true,使用store_false来默认存储false,store_const用来存储const设置的值到此option,append表示增加option的参数到list中,此时此option是一个list,可能包含多个值,count表示对counter增加一,callback表示调用指定的函数。所有的action值如下:
store + store_true + store_false + store_const + append + count + callback

type=:表示此option的值的类型,默认为string,可以指定为string, int, choice, float and complex;
dest=:表示此option在经过optionparser解析后的options对象中成员的名字,默认使用long option string;
help=:表示这个参数的使用说明;
default=:表示比option的默认值;
metavar=:表示显示到help中option的默认值;
const=:当action为store_const的时候,需要设置此值;
choices=:当设置type为choices时,需要设置此值;

函数parse_args

(options, args) = parser.parse_args()

返回值:
options为是一个directory,它的内容为“参数/值 ”的键值对。
args是一个list,它的内容是所有参数除去options后,剩余的输入内容。

简单用法:

from optparse import OptionParser  
  
parser = OptionParser(usage="usage:%prog [options] arg1 arg2")  
parser.add_option("-t", "--timeout",  
                action = "store",  
                type = 'int',  
                dest = "timeout",  
                default = None,  
                help="Specify annalysis execution time limit"  
                )  
parser.add_option("-u", "--url",  
                action = "store_true",  
                dest = "url",  
                default = False,  
                help = "Specify if the target is an URL"  
                )
(options, args) = parser.parse_args() 
if options.url:  
    print(args[0])

复杂用法:参数分组

parser = optparse.OptionParser(version="%prog " + config.version)# common_groupcommon_group = optparse.OptionGroup(
    parser, "Common Options",    "Common options for code-coverage.")
parser.add_option_group(common_group)
common_group.add_option(    "-l", "--lang", dest="lang", type="string", default="cpp",    help="module language.", metavar="STRING")
common_group.add_option(    "--module_id", dest="module_id", type="int", default=None,    help="module id.", metavar="INT")
cpp_group = optparse.OptionGroup(
    parser, "C/C++ Options",    "Special options for C/C++.")# cpp_groupparser.add_option_group(cpp_group)
cpp_group.add_option(    "--local-compile", action="store_true", dest="local_compile",    help="compile locally, do not use compile cluster.")
cpp_group.add_option(    "--module_path", dest="module_path", type="string", default=None,    help="module path, like app/ecom/nova/se/se-as.", metavar="STRING")
    
options, arguments = parser.parse_args()
lang = options.lang
module_id = options.module_id
local_compile = options.local_compile
module_path = options.local_compile

argparse

类ArgumentParser

class argparse.ArgumentParser(prog=None, 
                usage=None, 
                description=None, 
                epilog=None, 
                parents=[], 
                formatter_class=argparse.HelpFormatter,
                prefix_chars='-', 
                fromfile_prefix_chars=None, 
                argument_default=None, 
                conflict_handler='error', 
                add_help=True)

参数:
prog:程序的名字(默认:sys.argv[0])
usage:描述程序用法的字符串(默认:从解析器的参数生成)
description:参数帮助信息之前的文本(默认:空)
epilog:参数帮助信息之后的文本(默认:空)
parents:ArgumentParser 对象的一个列表,这些对象的参数应该包括进去
formatter_class:定制化帮助信息的类
prefix_chars:可选参数的前缀字符集(默认:‘-‘)
fromfile_prefix_chars:额外的参数应该读取的文件的前缀字符集(默认:None)
argument_default:参数的全局默认值(默认:None)
conflict_handler:解决冲突的可选参数的策略(通常没有必要)
add_help:给解析器添加-h/–help 选项(默认:True)

函数add_argument()

add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help]
[, metavar][, dest])

参数:
name or flags:选项字符串的名字或者列表,例如foo 或者-f, --foo。
action:在命令行遇到该参数时采取的基本动作类型。
nargs:应该读取的命令行参数数目。
const:某些action和nargs选项要求的常数值。
default:如果命令行中没有出现该参数时的默认值。
type:命令行参数应该被转换成的类型。
choices:参数可允许的值的一个容器。
required:该命令行选项是否可以省略(只针对可选参数)。
help:参数的简短描述。
metavar:参数在帮助信息中的名字。
dest:给parse_args()返回的对象要添加的属性名称。

简单用法:

import argparse
parser = argparse.ArgumentParser(description="progrom description")
parser.add_argument('key', help="Redis key where items are stored")
parser.add_argument('--host')
arser.add_argument('--port')
parser.add_argument('--timeout', type=int, default=5)
parser.add_argument('--limit', type=int, default=0)
parser.add_argument('--progress_every', type=int, default=100)
parser.add_argument('-v', '--verbose', action='store_true')
args = parser.parse_args()
key = args.key
host = args.host
port = args.port
timeout = args.timeout
limit = args.limit
progress-every = args.progress_every
verbose = args.verbose

相关文章

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

910

2023.08.02

css中float用法
css中float用法

css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

593

2024.04.28

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

105

2025.10.23

counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

201

2023.11.20

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

557

2023.09.20

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

678

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

219

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1560

2023.10.24

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

48

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 4.7万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号