Python CLI工具一般解析问题

2024-04-27 03:04:22 发布

您现在位置:Python中文网/ 问答频道 /正文

如果可能,我希望将以下结构用于命令,但是我似乎不知道如何在Python中实现这一点:

./somescript.py arg <optional argument> -- "some long argument"

有没有可能在没有太多脏代码的情况下以一种可行的方式实现这一点?或者我应该重新考虑一下语法(主要是偏好)。在

谢谢!在


Tags: 代码py命令方式语法arg情况some
3条回答

我想optparse能做到。在

如果您不想在您的argoptional_argument前面使用破折号,这对于典型的Unix命令行行为来说有点奇怪,但我不明白为什么每个答案都认为您可以使用破折号。事实上,避开他们有点微不足道

import sys

def before_and_after_doubledashes(args=sys.argv):
    where_doubledashes = args.index(' ') if ' ' in args else len(args)
    return args[:where_doubledashes], args[where_doubledashes+1:]

这完全忽略了参数是否以破折号开头,只需挑出第一次出现的完全是双破折号的参数(如果有)并返回一个由两个列表组成的元组,一个是双短划线之前的所有参数,一个是它后面的所有参数(如果没有双短划线参数,则为空)。您可以从调用中分配这些列表:

^{pr2}$

然后按你的意愿对待它们(检查它们的长度,从它们的一部分分配变量,等等)。在

你只需要在第一行写上这样的东西: #/usr/local/bin/python

只要python位于你的二进制文件所在的地方。在

至于参数,请查看getopt或optparser

并记住chmod您的文件使其可执行。在

相关问题 更多 >