cmd 1 -m -d 用getopt解析
时间: 2024-05-14 14:18:57 浏览: 89
以下是一个使用 getopt 解析命令行参数的例子:
```python
import getopt
import sys
def main(argv):
mode = ''
debug = False
try:
opts, args = getopt.getopt(argv, "m:d", ["mode=", "debug"])
except getopt.GetoptError:
print('Usage: cmd -m <mode> -d')
sys.exit(2)
for opt, arg in opts:
if opt in ("-m", "--mode"):
mode = arg
elif opt in ("-d", "--debug"):
debug = True
print('Mode:', mode)
print('Debug:', debug)
if __name__ == "__main__":
main(sys.argv[1:])
```
在这个例子中,我们定义了两个选项:`-m` 和 `-d`,其中 `-m` 选项需要一个参数,可以通过 `-m <mode>` 或 `--mode <mode>` 的方式传递参数。`-d` 选项不需要参数,只需要存在即可。
在 `main` 函数中,我们使用 `getopt.getopt` 函数解析命令行参数。`getopt.getopt` 函数接受两个参数:第一个参数是命令行参数列表,这里我们使用 `sys.argv[1:]` 来获取除了脚本名以外的命令行参数;第二个参数是一个字符串,包含所有可接受的短选项和长选项。
`getopt.getopt` 函数返回一个元组,其中第一个元素是一个列表,包含所有解析出来的选项和参数。我们使用一个 for 循环遍历这个列表,根据选项来设置对应的变量的值。
最后,我们打印出来我们解析出来的选项和参数。
可以通过下面的命令来运行这个脚本:
```
$ python cmd.py -m mode1 -d
```
输出应该类似于:
```
Mode: mode1
Debug: True
```
阅读全文