Python Optparse篇

本文介绍如何使用Python的optparse模块来解析命令行参数。通过示例代码展示了如何定义选项并处理用户输入,同时提供了官方文档链接供进一步学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装:

1.直接安装就行了 window10 64 python 2.7 感觉并没有问题.


文档:

官方文档:

https://docs.python.org/2/library/optparse.html


使用: 

#coding: utf-8
import optparse


def main():
    
    usage = "usage: %prog [options] arg"
    parser = optparse.OptionParser(usage)
    parser.add_option("-f", dest="filename",
                      help="read data from FILENAME")  
    parser.add_option("-v", "--verbose",  
                      action="store_true", dest="verbose")  
    parser.add_option("-q", "--quiet",  
                      action="store_false", dest="verbose")
    
    (options, args) = parser.parse_args()
    
    print parser.parse_args()
    print options.filename
    print args
    args.append(options.filename)
    print args
     
if __name__ == "__main__":  
    main()



"""
F5

(<Values at 0x3360c88: {'verbose': None, 'filename': None}>, [])
None
[]
[None]


CMD

C:\Users\dell>python C:\Users\dell\Desktop\TEMP\AS.py -h
Usage: AS.py [options] arg

Options:
  -h, --help     show this help message and exit
  -f FILENAME    read data from FILENAME
  -v, --verbose
  -q, --quiet

C:\Users\dell>python C:\Users\dell\Desktop\TEMP\AS.py -f 1 2 3
(<Values at 0x2b52ac8: {'verbose': None, 'filename': '1'}>, ['2', '3'])
1
['2', '3']
['2', '3', '1']
"""




转载:

http://shelly-kuang.iteye.com/blog/797713

<think>我们被要求使用Pythonoptparse模块进行命令行参数解析。optparsePython的一个库,用于解析命令行参数,但在Python 2.7之后被argparse模块取代。不过,对于旧代码或特定环境,我们仍可能需要使用optparse。 根据引用[1]和引用[3]中的示例,我们可以构建一个基本的optparse使用示例。 基本步骤: 1. 导入optparse模块 2. 创建OptionParser对象 3. 使用add_option方法添加选项 4. 使用parse_args方法解析命令行参数 每个选项可以包括短选项(如"-f")、长选项(如"--file"),以及帮助信息等。 引用[1]中给出了一个示例: Usage: 01_optparse_process.py [options] Options: -h, --help show this help message and exit -l LOCAL, --local=LOCAL local directory's file -r REMOTE, --remote=REMOTE remote directory's file 引用[3]中展示了如何创建一个OptionParser对象,并设置一些属性(如formatter)。 因此,我们将创建一个示例程序,包含两个选项:-l(或--local)和-r(或--remote),分别用于指定本地文件和远程文件。 同时,我们也会包含默认的帮助选项(-h, --help),这是optparse自动添加的。 代码示例: ``` import optparse def main(): # 创建OptionParser对象 parser = optparse.OptionParser(usage="%prog [options]", version="%prog 1.0", description="This is a sample script for optparse usage.") # 添加选项 parser.add_option("-l", "--local", dest="local_file", action="store", type="string", help="specify local file") parser.add_option("-r", "--remote", dest="remote_file", action="store", type="string", help="specify remote file") # 解析命令行参数 (options, args) = parser.parse_args() # 打印选项 if options.local_file: print("Local file: %s" % options.local_file) if options.remote_file: print("Remote file: %s" % options.remote_file) # 打印其他参数(非选项参数) if args: print("Positional arguments: %s" % args) if __name__ == "__main__": main() ``` 解释: - 我们创建了一个OptionParser对象,并提供了usage、version和description参数(其中version需要调用时使用--version才会显示)。 - 添加了两个选项:-l/--local 和 -r/--remote,它们分别将值存储到options对象的local_file和remote_file属性中。 - 解析后,options对象包含我们定义的选项的值,而args列表包含剩余的位置参数。 注意:在optparse中,每个选项可以指定一个动作(action),常见的动作有: "store":存储选项的值(默认) "store_true":如果出现该选项,则存储True "store_false":存储False "append":将选项的值追加到列表 另外,type可以是"string"(默认)、"int"、"float"等。 运行示例: python script.py -l local.txt -r remote.txt file1.txt file2.txt 输出: Local file: local.txt Remote file: remote.txt Positional arguments: ['file1.txt', 'file2.txt'] 注意:optparse模块在Python 3.2之后被弃用,推荐使用argparse(引用[2]和引用[4]展示了argparse的简单使用)。但对于需要维护旧代码的情况,了解optparse仍然很重要。 下面,我们将按照要求生成相关问题。</think>### Python optparse 模块详解 `optparse` 是 Python 用于解析命令行参数的经典模块(Python 3.2+ 推荐使用 `argparse`)。以下是使用指南和示例: #### 核心功能 1. **创建解析器** 初始化 `OptionParser` 对象并设置元数据: ```python from optparse import OptionParser parser = OptionParser(usage="%prog [options] file", version="%prog 1.0") ``` 2. **添加命令行选项** 通过 `add_option()` 定义参数规则: ```python # 短选项 -f,长选项 --file,类型为字符串 parser.add_option("-f", "--file", dest="filename", type="string", help="input data file") # 布尔型选项(出现则为 True) parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False, help="enable verbose mode") # 数值型选项 parser.add_option("-n", "--num", dest="count", type="int", help="process count") ``` 3. **解析参数** 使用 `parse_args()` 获取结果: ```python (options, args) = parser.parse_args() print("File:", options.filename) print("Positional args:", args) # 非选项参数列表 ``` #### 完整示例 ```python from optparse import OptionParser def main(): parser = OptionParser(usage="%prog [options] input_file") parser.add_option("-o", "--output", dest="outfile", help="output file") parser.add_option("-s", "--size", type="int", dest="size", default=100, help="buffer size (KB)") parser.add_option("-q", "--quiet", action="store_false", dest="verbose", default=True, help="suppress logs") (options, args) = parser.parse_args() if not args: parser.error("Input file required") print(f"Processing {args[0]} with:") print(f" Output: {options.outfile}") print(f" Size: {options.size}KB") print(f" Verbose: {options.verbose}") if __name__ == "__main__": main() ``` #### 执行示例 ```bash # 查看帮助 $ python script.py -h Usage: script.py [options] input_file Options: -h, --help show this help message and exit -o OUTFILE, --output=OUTFILE output file -s SIZE, --size=SIZE buffer size (KB) -q, --quiet suppress logs # 实际运行 $ python script.py -o result.txt -s 200 data.csv Processing data.csv with: Output: result.txt Size: 200KB Verbose: True ``` #### 关键特性 1. **自动生成帮助信息**(`-h/--help`)[^1] 2. **类型自动转换**:支持 `string`, `int`, `float`, `choice` 等类型 3. **动作控制**: - `store_true`/`store_false`:布尔开关 - `store_const`:存储常量值 - `append`:多次出现时收集为列表 4. **错误处理**:自动验证参数有效性并报错 > 注意:Python 3.2+ 建议使用 `argparse` 替代 `optparse`,其功能更强大(如子命令支持)[^2][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值