optparse模块
optparse模块为内置的第三方模块,实现类似sys.argv的功能,但更加方便好用。
# -*- coding:utf-8 -*- __author__ = 'Qiushi Huang' import optparse # sys.argv的功能类似 # python ftp_client.py -h 192.168.22.33 -p 8091 # user: # password class FTPClient(object): """ftp客户端""" def __init__(self): parser = optparse.OptionParser() parser.add_option("-s", "--server", dest="server", help="ftp server ip_addr") parser.add_option("-P", "--port", type="int", dest="port", help="ftp server port") parser.add_option("-u", "--username", dest="username", help="username info") parser.add_option("-p", "--password", dest= "password", help= "password info") self.options, self.args = parser.parse_args() print(self.options, self.args) if __name__ == '__main__': client = FTPClient() # 实例化
执行脚本python3 ftp_client.py 1 324,输出结果如下:
{'server': None, 'port': None, 'username': None, 'password': None} ['1', '324']
执行脚本python3 ftp_client.py -s 127.0.0.1 -P 3308 -u admin -p admin,输出结果如下所示:
{'server': '127.0.0.1', 'port': 3308, 'username': 'admin', 'password': 'admin'} []
从上面的代码可以看到,optparse模块可以帮忙完成输出参数的解析。同时,还可以用来查看帮助信息,方便客户执行程序。执行 python3 ftp_client.py -h,输出帮助信息如下:
Usage: ftp_client.py [options] Options: -h, --help show this help message and exit -s SERVER, --server=SERVER ftp server ip_addr -P PORT, --port=PORT ftp server port -u USERNAME, --username=USERNAME username info -p PASSWORD, --password=PASSWORD password info
需要注意虽然self.options打印出来的形式是字典,但实际是一个类,不能使用字典的get方法直接取值。
class FTPClient(object): """ftp客户端""" def __init__(self): parser = optparse.OptionParser() parser.add_option("-s", "--server", dest="server", help="ftp server ip_addr") parser.add_option("-P", "--port", type="int", dest="port", help="ftp server port") parser.add_option("-u", "--username", dest="username", help="username info") parser.add_option("-p", "--password", dest= "password", help= "password info") self.options, self.args = parser.parse_args() print(self.options, self.args) print(type(self.options), type(self.args))
执行python3 ftp_client.py,输出结果如下:
$ python3 ftp_client.py {'server': None, 'port': None, 'username': None, 'password': None} [] # options <class 'optparse.Values'> <class 'list'> # args
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术