命令解析optparse

mian页面
import optparse#optparse解析命令行命令
class ArgvHandler():
def __init__(self):#类先写初始化
#要连接先考虑ip地址和端口
self.op=optparse.OptionParser()

self.op.add_option('-s','--server',dest='server')
self.op.add_option('-P', '--port', dest='port')

options,args=self.op.parse_args()
print(type(options))
print(options.server)
print(options.port)
print(args)
#python ftp_server.py -s 127.0.0.1 -P 8080 hello people
#<class 'optparse.Values'>
# 127.0.0.1
# 8080
# ['hello', 'people']

#(venv) C:\Users\hound\PycharmProjects\test>cd ftp server

#(venv) C:\Users\hound\PycharmProjects\test\ftp server>cd bin

ftpserver页面:

#bin文件夹下 作为 启动页面,执行core文件夹下main
#当前py文件的文件夹作为第一目录,所以不能选core,因为bin下没有core
#from core import main#从文件夹导入py文件

import os,sys
PATH=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(PATH)

from core import main
if __name__ == '__main__':
    main.ArgvHandler()

 

转载于:https://www.cnblogs.com/wfl9310/p/9082216.html

<think>我们被要求使用Python的optparse模块进行命令行参数解析optparse是Python的一个库,用于解析命令行参数,但在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、付费专栏及课程。

余额充值