`

Python 获得命令行参数的方法

 
阅读更多

 

Python 获得命令行参数的方法

本篇将介绍python中sys, getopt模块处理命令行参数

如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?
需要模块:sys
参数个数:len(sys.argv)
脚本名:    sys.argv[0]
参数1:     sys.argv[1]
参数2:     sys.argv[2]


test.py

1 import sys
2 print "脚本名:", sys.argv[0]
3 for in range(1len(sys.argv)):
4     print "参数", i, sys.argv[i]

>>>python test.py hello world
脚本名:test.py
参数 1 hello
参数 2 world

python中使用命令行选项:
例如我们需要一个convert.py脚本。它的作用是处理一个文件,并将处理后的结果输出到另一个文件中。
要求该脚本满足以下条件:
1.通过-i -o选项来区别参数是输入文件还是输出文件.
>>> python convert.py -i inputfile -o outputfile
2.当不知道convert.py需要哪些参数时,用-h打印出帮助信息
>>> python convert.py -h

getopt函数原形:
getopt.getopt(args, options[, long_options])

convert.py

 

import sys, getopt

 

02  
03 opts, args = getopt.getopt(sys.argv[1:], "hi:o:")
04 input_file=""
05 output_file=""
06  
07 for op, value in opts:
08     if op == "-i":
09         input_file = value
10     elif op == "-o":
11         output_file = value
12     elif op == "-h":
13         usage()
14         sys.exit()

代码解释:
a) sys.argv[1:]为要处理的参数列表,sys.argv[0]为脚本名,所以用sys.argv[1:]过滤掉脚本名。
b) "hi:o:": 当一个选项只是表示开关状态时,即后面不带附加参数时,在分析串中写入选项字符。当选项后面是带一个附加参数时,在分析串中写入选项字符同时后面加一个":"号。所以"hi:o:"就表示"h"是一个开关选项;"i:"和"o:"则表示后面应该带一个参数。
c) 调用getopt函数。函数返回两个列表:opts和args。opts为分析出的格式信息。args为不属于格式信息的剩余的命令行参数。opts是一个两元组的列表。每个元素为:(选项串,附加参数)。如果没有附加参数则为空串''。

 

getopt函数的第三个参数[, long_options]为可选的长选项参数,上面例子中的都为短选项(如-i -o)
长选项格式举例:
--version
--file=error.txt
让一个脚本同时支持短选项和长选项
getopt.getopt(sys.argv[1:], "hi:o:", ["version", "file="])

分享到:
评论

相关推荐

    Python 获得命令行参数的方法(推荐)

    本篇将介绍python中sys, getopt模块处理命令行参数 如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块:sys 参数个数:len(sys.argv) 脚本名: sys.argv[0] 参数1: sys...

    Python 命令行参数sys.argv

    您可能感兴趣的文章:python的pytest框架之命令行参数详解(上)python获取命令行输入参数列表的实例代码Python 获得命令行参数的方法(推荐)Python解析命令行读取参数–argparse模块使用方法Python中的命令行参数...

    python实现读取命令行参数的方法

    ### Python 实现读取命令行参数的方法 在Python编程中,读取命令行参数是一项基本且重要的技能。本文将深入探讨如何使用Python内置的`sys`模块和`getopt`模块来实现这一功能,并通过实际示例进行演示。 #### 一、...

    python获得命令行输入的参数的两种方式

    在Python编程中,当直接通过命令行执行Python脚本时,有时...同时,Python 还提供了其他一些高级的命令行参数解析库,如 `argparse`,它提供了更丰富的功能和友好的帮助信息生成,对于大型项目来说是一个更好的选择。

    Python-Nubia是一个用Python构建命令行和交互式shell应用的轻量级框架

    4. **自动帮助文档**:Nubia自动生成命令和参数的帮助文档,只需简单地在命令行中输入`--help`,用户就能得到清晰的使用指南。 5. **交互式shell**:除了命令行工具,Nubia还支持创建交互式的shell环境。用户可以在...

    在cmd命令行里进入和退出Python程序的方法

    进入: 直接输入python即可,如图所示 退出: 1:输入exit(),回车 2:输入quit(),回车 3:输入ctrl+z,回车 以上这篇在cmd命令行里进入...详解python退出方法Python 获得命令行参数的方法(推荐)python清空命令行方式

    python命令行参数用法实例分析

    本文实例讲述了python命令行参数用法。分享给大家供大家参考,具体如下: 在命令行下执行某些命令的时候,通常会在一个命令后面带上一些参数,这些参数会传递到程序里,进行处理,然后返回结果,在linux 下很多命令...

    Python命令行参数解析工具 docopt 安装和应用过程详解

    Python编程语言在开发过程中,对于命令行参数的解析是一个常见的需求。...通过本文的详细介绍和示例,Python开发者应该能够掌握docopt的基本安装和使用方法,从而在自己的项目中轻松地实现命令行参数的解析。

    Python解析命令行读取参数之argparse模块

    在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数。万能的python就自带了argprase包 使得这一工作变得简单而规范。PS:optparse包是类似的功能,只不过写起来更麻烦一些。 如果脚本很...

    Python解析命令行读取参数–argparse模块使用方法

    在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数。万能的python就自带了argprase包使得这一工作变得简单而规范。PS:optparse包是类似的功能,只不过写起来更麻烦一些。 如果脚本很...

    python 命令行传入参数实现解析

    在Python中,处理命令行参数主要依赖于内置的`sys`模块,特别是`sys.argv`这个列表。下面将详细介绍如何在Python中实现命令行参数的解析。 `sys.argv`是一个包含命令行参数的列表。当Python脚本被调用执行时,`sys....

    Python-shell命令行下词典支持中英文互相查询

    - **Python标准库:**Python的标准库提供了许多用于文本处理和命令行交互的模块,如`argparse`用于解析命令行参数,`sys`用于获取命令行输入,`getpass`用于安全地读取用户输入等。 - **网络请求:**为了实现在线...

    Python命令行click参数用法解析

    在click中,命令行参数分为参数、选项和命令。参数是紧跟在命令之后的非选项内容,如`git add a.txt`中的`a.txt`。选项则是以`-`或`--`开头的参数,如`-f`、`--file`。命令是整个命令行的起点,如`git`,而`git add`...

    Python-contributors命令行工具用来获得一个或是更多github仓库的贡献者

    而当我们需要获取 GitHub 上开源项目的贡献者信息时,`python-contributors` 这个命令行工具提供了一个方便的方式。这个工具允许用户轻松地检索一个或多个GitHub仓库的全部或特定贡献者名单。 首先,让我们了解一下...

    在win和Linux系统中python命令行运行的不同

    例如,在Windows环境下调用其他的Python内置或第三方库提供的命令行工具时,也可以采用类似的方法。 #### 总结 本文通过一个具体的案例,展示了在Windows和Linux系统中使用Python命令行时的差异,并提供了有效的...

    Python-ppcp带进度条显示的文件和目录复制命令行工具

    同时,Python的普及性也确保了ppcp在不同的开发环境中都能得到广泛支持和使用。 总的来说,Python的ppcp是一个高效且实用的工具,它结合了Python的强大功能和命令行的便捷性,为文件和目录的复制提供了带有进度条...

    利用Python命令行传递实例化对象的方法

    本文主要讨论了两种在Python命令行中传递实例化对象的方法:使用`eval`和结合`pickle`与`base64`模块。 首先,我们要明确,通过命令行传递参数本质上是基于字符串的,因此直接传递实例化后的对象是不可能的。但是,...

    Python-CUTIE用于输入易用性的命令行用户工具

    6. **易于集成**:CUTIE设计简洁,易于与其他Python库集成,如argparse用于处理命令行参数,click则可以提供更高级的命令行交互。 7. **文档友好**:CUTIE的API设计清晰,便于开发者阅读和理解,同时,它也支持生成...

    搜集和整理的100道Python考试题.docx

    12. Python 中的命令行参数:Python 中可以使用 sys 模块来获得命令行参数,例如 argv[2] 可以获得第二个命令行参数。 13. Python 中的数学函数:Python 中的数学函数有 round 函数,可以用来四舍五入数字。 14. ...

Global site tag (gtag.js) - Google Analytics