首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python CLI工具-常规解析问题

Python CLI工具-常规解析问题
EN

Stack Overflow用户
提问于 2010-06-17 07:04:41
回答 3查看 232关注 0票数 3

如果可能的话,我想对一个命令使用以下结构,但是我似乎不知道如何在Python中实现这一点:

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

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

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-06-17 09:26:07

我认为optparse可以做到。

票数 3
EN

Stack Overflow用户

发布于 2010-06-17 10:15:25

如果你不想在你的argoptional_argument前面使用破折号,这对于典型的Unix命令行行为来说有点奇怪,但是我不明白为什么每个答案似乎都认为你必须使用破折号。实际上,避免他们是一种琐碎的事情...:

代码语言:javascript
复制
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:]

这完全忽略args是否以破折号开头,只会挑出第一次出现的arg,如果有的话,它会返回一个包含两个列表的元组,一个是在这个双破折号之前的所有args (如果有),另一个是它之后的所有args (如果没有双破折号参数,则为空)。您可以从呼叫中分配以下列表:

代码语言:javascript
复制
before, after = before_and_after_doubledashes()

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

票数 1
EN

Stack Overflow用户

发布于 2010-06-17 07:19:07

您只需要在第一行粘贴如下内容:#/usr/local/bin/python

只需将您的python二进制文件放在任何位置即可。

至于args,请查看getopt或optparser

记得chmod你的文件,使它可执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3057805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档